ci(release): recompose the installer bundle after publishing #25
Reference in New Issue
Block a user
No description provided.
Delete Branch "ci/dispatch-bundle"
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?
The dispatch half of installer Phase 0 item 3. Main PR: RunicGateway/installer#3. Sibling: RunicGateway/servuo-plugins#9. Docs: RunicGateway/docs#85.
Why
The installer does not resolve "latest" at run time — it installs the exact combination named by a published bundle manifest (
PLAN.md§7.1). So until now, a new sidecar release was invisible to operators until the installer repo's nightly cron happened to notice it.What changed
One step appended to
release.yml, gated onrelease == 'true', thatPOSTs toRunicGateway/installer'sbundle.ymlworkflow-dispatch endpoint. That job re-readsPROTOCOL_VERSIONfromsidecar/src/main.rsat the new release tag and checks it against the overlay's declared protocol before publishing anything (§7.1 gate 1) — so a bump that lands without its plugin half is caught at compose time instead of on an operator's shard.Two things it deliberately does not do
It does not wait (§7.3). Gitea's dispatch endpoint returns no run handle, so there is nothing to poll — a waiting step would have to guess which run is its own while holding a runner idle. The bundle job runs its own gates regardless of who started it.
It cannot fail this job. By the time the step runs, the release is published and correct; failing the run would misreport that. Every branch of the
casewarns rather than exits non-zero. That also keeps this from becoming a new hard credential requirement —REGISTRY_TOKENhaving write on the installer repo is a nicety, and without it the nightly cron picks the release up anyway. The header now says so.Verification
The workflow parses; the new step is last, gated on
steps.plan.outputs.release == 'true', and contains no path that can exit non-zero. Not exercised end to end here — it fires on the next merge tomain, and a403/404from it degrades to a warning by design.AI-assisted contribution
Co-Authored-Bytrailer.