name: CI on: push: branches: - master pull_request: branches: - master workflow_dispatch: permissions: contents: read concurrency: group: ci-${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true jobs: verify: name: Verify and build 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: 24 cache: npm - name: Install dependencies run: npm ci - name: Verify run: npm run verify - name: Build run: npm run build integration: name: Integration playground runs-on: ubuntu-latest timeout-minutes: 60 steps: - name: Checkout uses: actions/checkout@v4 - name: Setup Node.js uses: actions/setup-node@v4 with: node-version: 24 cache: npm cache-dependency-path: | package-lock.json integration/package-lock.json - name: Install package dependencies run: npm ci - name: Build package run: npm run build:package - name: Install playground dependencies run: npm ci --prefix integration - name: Install Chromium run: npm exec --prefix integration -- playwright install --with-deps chromium - name: Verify playground run: npm run verify --prefix integration