pcbjam/.github/workflows
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Viktor Vaczi b4cb10b1c6 perf(ci): cache the per-run toolchain + test-app work (binaryen, emsdk, apps, browsers)
Four new caches in wasm-build.yml, keyed on their real inputs:

- Binaryen post-process tools (bin/ only, keyed on the submodule SHA): on a
  hit BINARYEN_TRUST_PREBUILT=1 tells build-wasm-opt.sh to skip cmake+ninja
  and trust the restored binaries (~46s/run). The guard is env-gated so local
  pass iteration (uncommitted sources, same SHA) is unaffected.
- Built wx test apps (tests/apps minus kicad/ staging + gal-webgl/): skips
  the whole build step on a hit (~3 min — the post-link hoist+asyncify over
  ~74 apps dominates). Key covers wx SHA + kicad SHA (some apps compile real
  KiCad sources: thread_pool.cpp, libcontext), binaryen SHA, tracked app
  sources, and the build/post-link scripts + shims. Gated on a wx cache HIT:
  the app build creates the libwx_*.a symlinks the GAL link needs, so on a
  wx rebuild the apps must rebuild too.
- Host emsdk (tools/emsdk, keyed on the pinned EMSCRIPTEN_VERSION): mostly
  availability insurance — a fresh install is only ~23s but pulls ~340 MB
  from github.com + storage.googleapis.com on every run. downloads/ tarballs
  are pruned before the post-job save.
- Playwright browsers (~/.cache/ms-playwright keyed on tests/package-lock).

Warm-cache runs should drop from ~12 min to ~8-8.5 min (e2e suites are the
floor). Measured baselines from runs 28577824366 / 28520845242.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XeiSRRScdaox5jBueJNcyG
2026-07-02 12:40:22 +02:00
..
ci-ubicloud.yml feat(tests): screenshot regression + Discord review, perf-tracked 2026-07-01 18:17:20 +02:00
deploy-demo.yml feat(3d): live models CDN — 10.0.3 publish wiring + wrl→step fallback 2026-07-02 11:35:37 +02:00
publish-libs.yml feat(deploy): publish-libs CI + full clone (C1.3) 2026-06-20 12:47:38 +02:00
release.yml perf(cdn): publish demo WASM as brotli-q11 + no-transform 2026-07-01 12:21:54 +02:00
screenshot-changelog.yml feat(tests): screenshot regression + Discord review, perf-tracked 2026-07-01 18:17:20 +02:00
wasm-build.yml perf(ci): cache the per-run toolchain + test-app work (binaryen, emsdk, apps, browsers) 2026-07-02 12:40:22 +02:00
wasm-opt-bench.yml ci: ephemeral Hetzner CI — full build + e2e on main push, all else dispatch-only 2026-06-11 07:50:47 +02:00