fix(e2e): route pcbnew-family specs to bundled Chromium on CI

The xvfb/WebGL fix (f37ddc4) took CI from 22 to 11 failures (identical on
Hetzner 27343415331 and Ubicloud 27343416511) — everything left is the
pcbnew family, still dying at wasm compile: pcbnew's ~190M debug module
exceeds SpiderMonkey's per-process code budget on x86-64 even with the
baseline-only JIT (the same module compiles on arm64, whose denser code
fits — which is why the local arm64 repro passed). No pref raises that
limit; V8 handles the module fine.

New CI-only 'chromium-ci' project (bundled Chromium, headless, SwiftShader
via --enable-unsafe-swiftshader) carries pcbnew/pcbnew-collab/load-pcb/
load-pcb-probe; the firefox project ignores them on CI. Workflows call the
new test:kicad:ci script which runs both projects. Local test:kicad is
unchanged (firefox everywhere, system Chrome for headed runs).

Validated under x86 emulation (linux/amd64 playwright image on Rosetta):
the pcbnew wizard test passes on chromium-ci in 23s against the fresh
v130-postprocessed 192M module.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Istvan Matejcsok 2026-06-11 16:12:01 +02:00
commit e913bebdeb
4 changed files with 40 additions and 4 deletions

View file

@ -108,11 +108,13 @@ jobs:
working-directory: tests
run: npm run setup:kicad
- name: KiCad e2e (npm run test:kicad)
- name: KiCad e2e (npm run test:kicad:ci)
working-directory: tests
# xvfb-run: headed Firefox on a virtual display — WebGL needs GLX + Mesa
# llvmpipe, which headless Firefox can't reach on a GPU-less VM.
run: xvfb-run -a npm run test:kicad
# test:kicad:ci adds the chromium-ci project: pcbnew's wasm exceeds
# SpiderMonkey's x86-64 code budget, so those specs run on Chromium.
run: xvfb-run -a npm run test:kicad:ci
- name: Upload test logs & screenshots
if: always()

View file

@ -154,11 +154,13 @@ jobs:
working-directory: tests
run: npm run test
- name: KiCad e2e (npm run test:kicad)
- name: KiCad e2e (npm run test:kicad:ci)
working-directory: tests
# xvfb-run: headed Firefox on a virtual display — WebGL needs GLX + Mesa
# llvmpipe, which headless Firefox can't reach on a GPU-less VM.
run: xvfb-run -a npm run test:kicad
# test:kicad:ci adds the chromium-ci project: pcbnew's wasm exceeds
# SpiderMonkey's x86-64 code budget, so those specs run on Chromium.
run: xvfb-run -a npm run test:kicad:ci
# 6) Always capture logs/screenshots for post-mortem.
- name: Upload test logs & results