Skip to content

feat: add automatic graceful exit handlers for abort and migrating events #2845

feat: add automatic graceful exit handlers for abort and migrating events

feat: add automatic graceful exit handlers for abort and migrating events #2845

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"
}