diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 70917118c..5922b4dfa 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -3,7 +3,7 @@ name: Build and release on: [push] jobs: - build: + build-and-test: runs-on: ubuntu-latest steps: @@ -12,7 +12,7 @@ jobs: uses: actions/setup-node@v1 with: node-version: "12.x" - - run: npm install + - run: npm ci - run: npm test -- --coverage - run: bash <(curl -s https://codecov.io/bash) - run: xvfb-run --auto-servernum npm run e2e @@ -20,6 +20,7 @@ jobs: env: CI: true release: + needs: [build-and-test] runs-on: ${{ matrix.os }} strategy: diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 2c06331f6..3b831461d 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -4,7 +4,24 @@ on: branches: - master jobs: + build-and-test: + 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: + needs: [build-and-test] name: Release runs-on: ubuntu-18.04 steps: @@ -21,4 +38,39 @@ jobs: - name: Release env: GITHUB_TOKEN: ${{ secrets.github_token }} - run: npx semantic-release \ No newline at end of file + run: npx semantic-release + package: + needs: [build-and-test, 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') }} \ No newline at end of file diff --git a/.releaserc b/.releaserc index c111c95ce..d5678cf93 100644 --- a/.releaserc +++ b/.releaserc @@ -9,7 +9,7 @@ "changelogFile": "CHANGELOG.md" }], ["@semantic-release/git", { - "assets": ["CHANGELOG.md"] + "assets": ["CHANGELOG.md", "package.json"] }], ] } \ No newline at end of file