name: Build and release on: [push] jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: Use Node.js uses: actions/setup-node@v1 with: node-version: "12.x" - run: npm install - run: npm test -- --coverage - run: bash <(curl -s https://codecov.io/bash) - run: xvfb-run --auto-servernum npm run e2e - run: npm run build:prod env: CI: true release: runs-on: ${{ matrix.os }} strategy: matrix: os: [macos-latest, ubuntu-latest, windows-latest] steps: - name: Check out Git repository uses: actions/checkout@v1 - name: Install Node.js, NPM and Yarn uses: actions/setup-node@v1 with: node-version: 10 - name: Install Snapcraft uses: samuelmeuli/action-snapcraft@v1 # Only install Snapcraft on Ubuntu if: startsWith(matrix.os, 'ubuntu') with: # Log in to Snap Store snapcraft_token: ${{ secrets.snapcraft_token }} - name: Build/release 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') }}