[5650] feat(ci): build and push Railway preview wrapper images (WP1) - #5664
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
Local verification evidence (WP1 acceptance):
Remaining proof that needs a real Actions run (this PR provides it): the GHCR push path, the manifest-existence skip, and the |
|
CI status note: the three |
db22085 to
b694a2f
Compare
bb8f8a0 to
61971ae
Compare
Railway Preview Environment
Updated at 2026-08-03T06:54:28.759Z |
61971ae to
e15f1f7
Compare
e15f1f7 to
6fd6ea8
Compare
6fd6ea8 to
7f492e0
Compare
Part of the clone-based Railway preview redesign (#5650, WP1 of 3). Do not merge before #5658; merge order is bottom-up through the stack.
Preview clones can only consume plain registry images: upload-built (
railway up) services do not survive Railway's environment cloning (proven in the spike, #5658). Today the gateway, redis, and seaweedfs wrappers are generated at deploy time bydeploy-from-images.sh, so nothing publishes them as images. This PR makes the build pipeline own them.What changes
hosting/railway/oss/images/{gateway,redis,seaweedfs}/: the wrapper Dockerfiles and their config/entrypoint files, byte-faithful to what the deploy scripts generate (two documented divergences: comment headers, and a hardredis:8FROM pin that matches today's compose resolution).wrapper-imagesmatrix job: verifies byte-faithfulness, computes a content-addressed tag (content-<12hex>viacompute-tag.sh, deterministic, no timestamps), checks GHCR for that manifest, builds and pushes only when missing, then aliases the run'spr-<n>-<sha>tag onto the content manifest. Neverlatest(Railway'senvironmentPatchCommitno-ops on equal tags). Skips cleanly on fork PRs.verify-wrappers.shis the drift guard: it re-extracts the deploy script's actual heredocs at runtime and diffs them against the image sources, so any edit to the legacy render functions that is not mirrored here fails the build before a push. Negative-tested both ways.Legacy deploy behavior is untouched; this only adds the build.
Verification
verify-wrappers.shgreen, and correctly fails on injected drift (extra byte, FROM pin change).compute-tag.shis stable across runs (tags in the job summary).bash -n+ shellcheck clean on both scripts; actionlint clean on the new job.Refs #5650
https://claude.ai/code/session_011zdniFW44QDqcs4Nz8n3hr