name: CI on: push: branches: - main - dev pull_request: branches: - main - dev workflow_dispatch: concurrency: group: ci-${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true permissions: contents: read jobs: check-and-test: if: ${{ github.event_name != 'push' || !contains(github.event.head_commit.message, '[skip ci]') }} runs-on: ubuntu-latest timeout-minutes: 30 steps: - name: Checkout uses: actions/checkout@v4 - name: Setup Node.js uses: actions/setup-node@v4 with: node-version: 20 cache: npm - name: Install dependencies run: npm ci - name: Syntax check run: npm run check - name: Run stable test suite run: npm run test:stable