feat: add automatic graceful exit handlers for abort and migrating events
#2860
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Check & Release | |
| env: | |
| PUPPETEER_DOWNLOAD_BASE_URL: https://storage.googleapis.com/chrome-for-testing-public | |
| on: | |
| # Push to master will deploy a dev version | |
| push: | |
| branches: [master, renovate/**] | |
| # PR to master branch will skip deployment | |
| pull_request: | |
| branches: [master] | |
| jobs: | |
| # NPM install is done in a separate job and cached to speed up the following jobs. | |
| build_and_test: | |
| name: Build & Test | |
| if: (!contains(github.event.head_commit.message, '[skip ci]') && !contains(github.event.head_commit.message, 'docs:')) | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| # tests on windows are extremely unstable | |
| # os: [ ubuntu-22.04, windows-2019 ] | |
| os: [ubuntu-22.04] | |
| node-version: [18, 20, 22, 24] | |
| steps: | |
| - name: Cancel Workflow Action | |
| uses: styfle/cancel-workflow-action@0.13.0 | |
| with: | |
| access_token: ${{ github.token }} | |
| - name: Checkout repository | |
| uses: actions/checkout@v6 | |
| - name: Use Node.js ${{ matrix.node-version }} | |
| uses: actions/setup-node@v6 | |
| with: | |
| node-version: ${{ matrix.node-version }} | |
| cache: 'npm' | |
| cache-dependency-path: 'package-lock.json' | |
| - name: Install Dependencies | |
| run: | | |
| npm ci --force | |
| npx playwright install --with-deps | |
| - name: Build | |
| run: npm run ci:build | |
| - name: Tests | |
| run: npm test | |
| docs: | |
| name: Docs build | |
| if: ${{ !contains(github.event.head_commit.message, '[skip ci]') }} | |
| runs-on: ubuntu-22.04 | |
| steps: | |
| - name: Checkout Source code | |
| uses: actions/checkout@v6 | |
| - name: Use Node.js 24 | |
| uses: actions/setup-node@v6 | |
| with: | |
| node-version: 24 | |
| cache: 'npm' | |
| cache-dependency-path: 'package-lock.json' | |
| - name: Install Dependencies | |
| run: npm ci --force | |
| - name: Build docs | |
| if: github.ref != 'refs/heads/master' | |
| run: | | |
| cd website | |
| npm ci | |
| npm run build | |
| lint: | |
| name: Lint | |
| runs-on: ubuntu-22.04 | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v6 | |
| - name: Use Node.js 24 | |
| uses: actions/setup-node@v6 | |
| with: | |
| node-version: 24 | |
| cache: 'npm' | |
| cache-dependency-path: 'package-lock.json' | |
| - name: Install Dependencies | |
| run: npm ci --force | |
| - name: ESLint | |
| run: npm run lint | |
| - name: Prettier | |
| run: npm run format:check | |
| publish: | |
| name: Publish | |
| if: (github.ref == 'refs/heads/master') && !contains(github.event.head_commit.message, 'docs:') | |
| runs-on: ubuntu-22.04 | |
| needs: [lint, build_and_test] | |
| steps: | |
| - name: Checkout Source code | |
| uses: actions/checkout@v6 | |
| with: | |
| fetch-depth: 0 # we need to pull everything to have correct dev version suffix | |
| ref: master | |
| - name: Use Node.js 24 | |
| uses: actions/setup-node@v6 | |
| with: | |
| node-version: 24 | |
| cache: 'npm' | |
| cache-dependency-path: 'package-lock.json' | |
| - name: Install Dependencies | |
| run: npm ci --force | |
| - name: Publish beta to npm | |
| uses: apify/workflows/execute-workflow@main | |
| with: | |
| workflow: publish-to-npm.yaml | |
| inputs: > | |
| { | |
| "ref": "${{ github.sha }}", | |
| "tag": "next" | |
| } |