Skip to content

Speed up publish-release workflow by adding Go/WASM caching and bundle timeout#393

Open
Copilot wants to merge 1 commit into
mainfrom
copilot/fix-publish-action-duration
Open

Speed up publish-release workflow by adding Go/WASM caching and bundle timeout#393
Copilot wants to merge 1 commit into
mainfrom
copilot/fix-publish-action-duration

Conversation

Copilot AI commented Jun 22, 2026

Copy link
Copy Markdown

publish-release was spending excessive time in gulp bundle, with repeated long attempts caused by uncached Go/WASM work and no guardrail on step duration. This change aligns release-path caching with existing build validation behavior and adds a hard timeout to prevent multi-hour hangs.

  • Workflow bottleneck addressed

    • Added Go toolchain setup in release workflow (actions/setup-go@v5) with module cache keyed by blobl-editor/wasm/go.sum.
    • This removes repeated cold-start dependency downloads during WASM build in release jobs.
  • Generated artifact caching

    • Added cache for src/static/blobl.wasm keyed by Go + Node dependency state.
    • Enables reuse of generated WASM when inputs are unchanged, reducing bundle latency.
  • Execution guardrail

    • Added timeout-minutes: 10 to gulp bundle in publish workflow.
    • Prevents stalled or degraded runs from consuming the full job lifetime.
- name: Set up Go
  uses: actions/setup-go@v5
  with:
    go-version: stable
    cache-dependency-path: blobl-editor/wasm/go.sum

- name: Cache generated files
  uses: actions/cache@v4
  with:
    path: src/static/blobl.wasm
    key: generated-${{ hashFiles('blobl-editor/wasm/go.sum') }}-${{ hashFiles('package-lock.json') }}

- run: gulp bundle
  timeout-minutes: 10

@netlify

netlify Bot commented Jun 22, 2026

Copy link
Copy Markdown

Deploy Preview for docs-ui ready!

Name Link
🔨 Latest commit 93aab58
🔍 Latest deploy log https://app.netlify.com/projects/docs-ui/deploys/6a39a1cdfc3dcf000881a448
😎 Deploy Preview https://deploy-preview-393--docs-ui.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.
Lighthouse
Lighthouse
1 paths audited
Performance: 31 (no change from production)
Accessibility: 89 (no change from production)
Best Practices: 92 (no change from production)
SEO: 89 (no change from production)
PWA: -
View the detailed breakdown and full score reports

To edit notification comments on pull requests, go to your Netlify project configuration.

@JakeSCahill JakeSCahill requested a review from micheleRP June 26, 2026 00:51
@micheleRP

Copy link
Copy Markdown
Contributor

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 gulp bundle never ran:

  • Update wasm_exec.js… (May 26) — npm install cancelled at 6:00:09, gulp bundle skipped
  • Update standalone API widget… (May 26) — npm install cancelled at 6:00:08, skipped
  • v3.1.0-beta.4 (Jun 9) and v3.1.0-beta.7 (Jun 10) — same pattern

On healthy runs (v3.1.1, v3.1.4), gulp bundle (including the Go/WASM build) finishes in ~70s, while Install dependencies takes 5–6 min because tag-push runs miss the branch-scoped node_modules cache. So WASM/bundle isn't the bottleneck, and the hang has only ever happened in the install step.

Suggested changes:

  1. Move the guardrail to the step that actually hangs. timeout-minutes: 10 on gulp bundle (a ~70s step) wouldn't have caught any of the four incidents. A job-level timeout covers the install step too:
    jobs:
      build:
        runs-on: ubuntu-22.04
        timeout-minutes: 20
  2. Drop the Cache generated files step. gulp bundle runs build:wasm unconditionally (go build -o src/static/blobl.wasm), and clean only removes build/ and public/, so the restored blobl.wasm is overwritten every run — the cache saves nothing.
  3. Keep setup-go + the Go module cache — that's a reasonable, low-risk improvement (pins Go and trims module downloads), though the win is small on a ~70s bundle step.
  4. Please tweak the description: the stalls were in dependency install (already mitigated by the npm ci cache in Fix data-platform double padding and add home page light mode hero #389), not gulp bundle.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants