Skip to content

Rebuild web assets on every release#773

Merged
bwhitman merged 1 commit into
mainfrom
claude/pedantic-curran-128668
Jun 26, 2026
Merged

Rebuild web assets on every release#773
bwhitman merged 1 commit into
mainfrom
claude/pedantic-curran-128668

Conversation

@bwhitman

Copy link
Copy Markdown
Collaborator

What

Rebuild the browser AMY web assets — docs/amy.js, amy.wasm, amy.aw.js, amy.ww.js — from source on every release and fold them into the version-bump commit that release.yml tags.

Why

These four files are Emscripten build outputs, but until now they were only refreshed by hand via make deploy-web. The Godot addon zip and the docs/ web demo both ship them, so a release could tag and ship stale web assets that didn't match the released source. Now main, the release tag, and the Godot zip all carry web built from that exact commit — by construction, since godot-addon.yml is dispatched at the tag.

How

  • Add the web toolchain to the release job (Python 3.13 + numpy + mymindstorm/setup-emsdk@4.0.22) — the same setup the web job in c-cpp.yml already uses, so the committed bytes match what CI verifies on every PR.
  • New step runs make deploy-web.
  • The bump commit now stages library.properties plus the four docs/amy.* outputs.

Notes

  • Scope is docs/amy.* only. docs/enable-threads.js (static) and docs/micropython.* (the separate tulipcc REPL build) are intentionally not rebuilt here.
  • No-op when unchanged: with the pinned emsdk, identical source produces identical bytes, so docs/ only churns when web output actually changes.
  • ~3–5 min added per release, serialized under the existing concurrency: release lock. If make deploy-web fails it aborts before any tag/release is created, and c-cpp.yml already gates the same make web on every PR.
  • Self-applying: merging this runs the updated release.yml, so the first release to use it is the one cut by this merge.

🤖 Generated with Claude Code

Fold make deploy-web into the version-bump commit that release.yml tags, so docs/amy.js, amy.wasm, amy.aw.js and amy.ww.js are always built from the same source that gets tagged. The release tag and the Godot zip (which copies docs/amy.*) now match that exact commit instead of whatever was last deployed by hand.

Toolchain mirrors the existing web job in c-cpp.yml (Python + numpy + pinned emsdk 4.0.22). The static enable-threads.js and the tulipcc-built micropython.* REPL files are not rebuilt here.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@bwhitman bwhitman merged commit 426c3a1 into main Jun 26, 2026
8 checks passed
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.

1 participant