Skip to content

PhaserForge CI / E2E (Full Matrix) #154

PhaserForge CI / E2E (Full Matrix)

PhaserForge CI / E2E (Full Matrix) #154

name: PhaserForge CI / E2E (Full Matrix)
on:
schedule:
- cron: '0 6 * * *'
push:
tags:
- 'v*'
workflow_dispatch:
env:
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true
HOME: /tmp/phaserforge-home
permissions:
contents: read
jobs:
e2e-nightly-full-matrix:
name: E2E Full Matrix (shard ${{ matrix.shard }}/${{ matrix.shards }})
runs-on: ubuntu-latest
container:
image: mcr.microsoft.com/playwright:v1.61.1-resolute
options: --ipc=host
strategy:
fail-fast: false
matrix:
shard: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
shards: [12]
steps:
- name: Prepare writable home
run: mkdir -p "$HOME"
- name: Checkout
uses: actions/checkout@v7
- name: Setup Node
uses: actions/setup-node@v7
with:
node-version: 26
- name: Install
run: npm ci
- name: Build docs for E2E
run: npm run docs:build
- name: E2E Tests
env:
PW_PROJECTS: firefox,webkit,msedge
# Keep browser processes isolated; concurrent workers cause broad WebKit timing inflation.
PW_WORKERS: '1'
PHASERFORGE_DOCS_PREBUILT: '1'
run: npm run test:e2e -- --project=firefox --project=webkit --project=msedge --shard=${{ matrix.shard }}/${{ matrix.shards }} --fail-on-flaky-tests
- name: Record timing telemetry
if: always()
run: >-
npm run repair:ci -- e2e-timing --report playwright-report
--run-id full-matrix-shard-${{ matrix.shard }} || true
- name: Upload Playwright Artifacts
if: always()
uses: actions/upload-artifact@v7
with:
name: playwright-full-matrix-${{ matrix.shard }}-of-${{ matrix.shards }}
path: |
playwright-report
test-results
.repair-harness/runs/full-matrix-shard-${{ matrix.shard }}