name: Build and release on: push: branches: - electron pull_request: branches: - electron jobs: build-and-test: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 with: persist-credentials: false - name: Use Node.js uses: actions/setup-node@v1 with: node-version: '16.x' - run: git config --global url."https://${{ secrets.PAT }}@github.com/".insteadOf ssh://git@github.com/ - run: npm ci - run: npm test -- --coverage - run: bash <(curl -s https://codecov.io/bash) - run: npm run build:prod env: CI: true release: needs: [build-and-test] runs-on: ${{ matrix.os }} strategy: matrix: os: [macos-latest, ubuntu-latest, windows-latest] steps: - name: Check out Git repository uses: actions/checkout@v2 - name: Install Node.js, NPM and Yarn uses: actions/setup-node@v1 with: node-version: '16.x' - name: Build Electron app uses: samuelmeuli/action-electron-builder@v1 with: # GitHub token, automatically provided to the action # (No need to define this secret in the repo settings) github_token: ${{ secrets.github_token }} # If the commit is tagged with a version (e.g. "v1.0.0"), # release the app after building release: ${{ startsWith(github.ref, 'refs/tags/v') }} - name: Archive production artifacts uses: actions/upload-artifact@v2 with: name: dev-release path: ./release/iptvnator*