ci: build and gate galaxy-gen inside the dev-base image #76
No reviewers
Labels
No labels
burndown-2026-06
autonomy
async-consult
autonomy
epic
autonomy
headless
autonomy
live-collab
c#
priority
P0
priority
P1
priority
P2
priority
P3
priority
P4
role/ai
role/creator
role/design
role/director
role/engineer
role/exec
role/human
role/ops
role/qa
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
coilyco-gaming/galaxy-gen!76
Loading…
Reference in a new issue
No description provided.
Delete branch "gg/claude/74-ci-in-dev-base"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Closes part of galaxy-gen#74. The CI contract questions this surfaced are galaxy-gen#75.
What
Both Forgejo lanes now run inside the promoted dev-base image through this repo's own
ward execverbs, and the Dockerfile's builder stage is that same image. rust, node, wasm-pack, and a pinned binaryen all arrive with it (agentic-os#986), so the gate and the shipped artifact are finally built by one toolchain.Why
The bundle was produced in four places with three toolchains, and the one that shipped was the one nothing tested:
cargo install wasm-pack, and no binaryen on PATH at alllts/*(22)cargo testonlyThe local row is the sharp one. wasm-pack takes
wasm-optfrom PATH when it finds one and otherwise downloads its own floatinglatest, so local builds optimized every bundle by date rather than by source, on the exact tool whose output already broke chromium once.Notes for review
installno longer runscargo install wasm-packunconditionally. Inside the image that would overwrite the pinned binary in the sharedCARGO_HOME/binwith a floating one, reintroducing the drift being removed. Newci-setupverb does the lockfile-exactnpm cithat CI needs.rust-toolchain.tomlstill pins 1.90.0, which is what keeps dev-base's floatingstabledefault from mattering. Its comment referenced the now-deletedscripts/ci/install-rust.shand is rewritten.docker buildnow needs aforgejo.coilysiren.melogin to pull its own base.scripts/publish-image.shalready logs in first. A localward exec build-dockerneeds that login too, where the old public Rust base needed none..github/workflows/action.ymlis deliberately untouched. Itsrustandjsjobs now duplicate this gate, but leaving them keeps coverage while the new lane earns trust. Removing them is galaxy-gen#75.Browser e2e is not here
It cannot move.
AGENTS.mdrecords that the in-cluster runner cannot reach the Playwright browser CDN, soplaywright installcannot fetch chromium on this side, and dev-base carries no browser. I drafted an e2e job, then removed it on that evidence rather than shipping a job I expected to fail. e2e therefore remains the one gate exercising a differently-built bundle (galaxy-gen#75).Two doc corrections
AGENTS.mdclaimed a push tomain"rolls the public site." It does not. The deploy repo pins an exact source SHA and rolls only on its ownservices/galaxy-gen/**changes, with cross-repo dispatch unbuilt (deploy#11).Verification
ward doctorpasses with the new verbmainalready fails 91 checks pre-existing (galaxy-gen#46). This branch takes it to 88 and adds none.wasm-pack --versionandwasm-opt --version.