Merge branch 'rescue/pre-adopt-lightpanda-local' #18
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
| # CI workflow — runs on every PR and push to main. | |
| # Matrix: ubuntu × macos × windows, Node 20 and 22. | |
| # Only one build lane (build:bundle) to keep runtime bounded. | |
| name: CI | |
| on: | |
| pull_request: | |
| push: | |
| branches: | |
| - main | |
| jobs: | |
| ci: | |
| name: "${{ matrix.os }} / node ${{ matrix.node }}" | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| # Cross-platform smoke: Linux is primary; macOS and Windows catch | |
| # platform-specific path/binary issues early. | |
| # Node 20 left active LTS in April 2026 — test 22 (active LTS) | |
| # and 24 (current). Drop 20 to halve matrix cost. | |
| os: [ubuntu-latest, macos-latest, windows-latest] | |
| node: ["22.x", "24.x"] | |
| steps: | |
| - uses: actions/checkout@v5 | |
| - name: Setup Node ${{ matrix.node }} | |
| uses: actions/setup-node@v5 | |
| with: | |
| node-version: ${{ matrix.node }} | |
| cache: npm | |
| - name: Install dependencies | |
| run: npm ci | |
| # Integration tests exercise real Playwright flows; install the | |
| # bundled chromium so vitest.config.js#detectBrowserSupport() returns | |
| # true and test/integration/** is included (otherwise the filter hits | |
| # zero files and vitest exits 1). | |
| - name: Install Playwright chromium | |
| run: npx playwright install --with-deps chromium | |
| - name: Unit tests | |
| run: npm run test:unit | |
| - name: Integration tests | |
| run: npm run test:integration | |
| # Build bundle only (not SEA) — keeps CI fast and avoids platform | |
| # binary signing requirements that belong in build-artifacts.yml. | |
| - name: Build bundle | |
| run: npm run build:bundle |