Skip to content

Conformance

Conformance #66

Workflow file for this run

name: Conformance
on:
workflow_dispatch:
schedule:
- cron: "0 4 * * 0"
push:
tags:
- "v*"
permissions:
contents: read
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
quality:
name: Quality
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- uses: actions/checkout@v7
- uses: actions/setup-node@v6
with:
node-version: 24
cache: npm
- run: npm ci
- run: npm run check
- run: npm run types:check
wpt-full:
name: ${{ matrix.os }} / Node ${{ matrix.node }} / WPT
runs-on: ${{ matrix.os }}
needs: quality
timeout-minutes: 90
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
node: [20, 22, 24]
env:
WPT_TEST_TIMEOUT_MS: 180000
WPT_WORKER_TIMEOUT_MS: 600000
WPT_WORKER_DELAY_MS: 2000
WPT_CLEANUP_DELAY_MS: 3000
steps:
- uses: actions/checkout@v7
- uses: actions/setup-node@v6
with:
node-version: ${{ matrix.node }}
cache: npm
- uses: ./.github/actions/setup-native-build
- run: npm ci
- run: npm run native:check
- run: npm run build
- run: npm test
- run: npm run api:check
- run: npm run types:check
- run: npm run wpt:ensure
- run: npm run wpt:selection:check
- run: npm run wpt:test:sharded -- --shards=3
- run: npm run wpt:check:strict
- run: npm run wpt:report -- --output wpt-report.md
if: always() && hashFiles('wpt-results.json') != ''
- uses: actions/upload-artifact@v7
if: always()
with:
name: wpt-manifest-${{ matrix.os }}-node-${{ matrix.node }}
path: |
wpt-manifest.json
wpt-report.md
wpt-results.json