ci(release): recompose the installer bundle after publishing #9
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, and the TODO this workflow's header has carried since #7 — deliberately left unimplemented while there was nothing to dispatch, since a step that
404s on every release is worse than no step. There is now something to dispatch.Main PR: RunicGateway/installer#3. Sibling: RunicGateway/link#25. Docs: RunicGateway/docs#85.
Why
The installer does not resolve "latest" at run time — it deploys the exact overlay named by a published bundle manifest (
PLAN.md§7.1). An overlay release that nobody recomposes around is therefore a release no operator will ever be offered.What changed
One step appended to
release.yml, gated onrelease == 'true', thatPOSTs toRunicGateway/installer'sbundle.ymlworkflow-dispatch endpoint. Plus the header TODO replaced by a description of what now exists.That job re-reads this tarball's
manifest.jsonand checks its declaredprotocolagainst the sidecar'sPROTOCOL_VERSIONbefore publishing anything (§7.1 gate 1) — the check this repo cannot perform for itself, since the C# plugin announces no version on the wire and none is queryable before ServUO boots.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.
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 that repo's 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 release-cutting merge tomain, and a403/404from it degrades to a warning by design.The bundle job on the other side was exercised against this repo's live
v0.1.1release: it verifiedrunicgateway-overlay-0.1.1.tar.gzagainst the publishedSHA256SUMS, readprotocol=3andservuo.min_version=57.4out of the tarball'smanifest.json, and cross-checkedmanifest.versionagainst the release tag. See installer#3.AI-assisted contribution
Co-Authored-Bytrailer.