Add an output-cache layer to ci-ubicloud.yml so a build whose inputs are unchanged (typical when only tests/ or web/ change) skips the in-Docker compile + the 1-2h host asyncify/wasm-opt chain — the bulk of the ~1h52m run. On a hit, output/ and the GAL sysroot headers are restored from cache and the deps restore/seed, build.sh, and sysroot export are all gated on a miss, so Docker is never started. Key: kwasm-<os>-bin<ver><opt>-k<kicad-sha>-wx<wx-sha>-sc<hash>-e<epoch>. The "sc" hash (scripts/deploy/wasm-cache-hash.mjs) folds in just the build-logic files that shape the wasm bytes (host post-processing, per-tool compile recipes, scripts/deps, docker/Dockerfile+build.sh) plus itself; it is content-based, order-independent, and identical on macOS/CI. *.wasm.debug.wasm (5+ GB, unused by tests) is excluded -> ~0.5 GB entry on Ubicloud's transparent 30 GB/repo/week cache. Invalidation: - bump .ci-cache-epoch in a commit for durable busts (inputs the sc-hash can't see: base-image/apt drift, a bad cache); - [no-cache] or [rebuild-wasm] in the commit message / PR title, or workflow_dispatch no_cache=true, for a one-off rebuild (split restore/save so the bypass still refreshes the entry). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1 line
2 B
Text
1 line
2 B
Text
0
|