Speed up publish-release workflow by adding Go/WASM caching and bundle timeout#393
Speed up publish-release workflow by adding Go/WASM caching and bundle timeout#393Copilot wants to merge 3 commits into
Conversation
✅ Deploy Preview for docs-ui ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
|
Thanks for tackling the release-workflow stalls — the multi-hour runs are real and worth fixing. But the run history points at a different cause than this PR targets, so I'd like to rescope it before merging. What the runs actually show. All four 6-hour cancelled runs hung in the dependency-install step, and
On healthy runs ( Suggested changes:
|
The four 6-hour stalls hung in the dependency-install step, not in gulp bundle (which finishes in ~70s). Adjust the changes accordingly: - Move the timeout to the job level (timeout-minutes: 20) so it covers the npm install step where the hangs actually occurred; a per-step timeout on gulp bundle would never have fired. - Drop the "Cache generated files" step: build:wasm runs `go build -o src/static/blobl.wasm` unconditionally, overwriting any restored cache, so it saved nothing. - Keep setup-go + the Go module cache (low-risk, pins Go and trims module downloads). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
Thanks @micheleRP. Will update the PR description to attribute the stalls to dependency install (already mitigated by the |
Add a push:[main] trigger to validate-build so the node_modules cache is populated in the default-branch scope on every merge. GitHub Actions caches are only restorable from the same ref or the default branch, so tag-triggered publish-release runs (refs/tags/v*) previously couldn't read the PR-scoped caches and cold-installed (~5-6 min) every release. With main's scope warmed, the release run can now restore it. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
Added the actual fix for the slow release install in 93e933e. Root cause: GitHub Actions caches are only restorable from the same ref or the default branch. Fix: add a The timeout/setup-go changes in this PR remain the guardrail; this is the part that should actually cut the install time. |

Problem
The
publish-releaseworkflow occasionally ran for the full 6-hour ceiling before being cancelled. Reviewing the run history, all four incidents hung in the dependency-install step (npm ci) —gulp bundlenever started. On healthy runs,gulp bundle(including the Go/WASM build) completes in ~70s, while a coldInstall dependenciestakes 5–6 min on tag-push runs that miss the branch-scopednode_modulescache.#389 already added the
npm cicache that mitigates the slow-install path. This PR adds a guardrail so a future install hang fails fast instead of burning 6 hours, plus a low-risk Go setup improvement.Changes
timeout-minutes: 20— covers every step, includingnpm ciwhere the hangs actually occurred. (A per-step timeout on the ~70sgulp bundlestep would never have caught the incidents.)actions/setup-go@v5+ Go module cache — pins Go and trims module downloads for thebuild:wasmstep.Notes
Earlier revisions of this PR also added a per-step
timeout-minutes: 10ongulp bundleand aCache generated filesstep forsrc/static/blobl.wasm. Both were removed after review:build:wasmrunsgo build -o src/static/blobl.wasmunconditionally and overwrites any restored cache every run.Thanks @micheleRP for the rescope.