ci: release on merge — the merge to main IS the release; nobody pushes tags #5
Loading…
Reference in a new issue
No description provided.
Delete branch "ci/release-on-merge"
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?
A release now happens only because the operator merged it to
main. Nobody pushes tags, and nothing dispatches a deploy.Flow
./build releasecuts and signs on the operator machine, as before. The signing key stays there and never becomes a CI secret. The build packs the bundle once and writesrelease/MANIFEST(version + bundle sha256) into therelease: vX.Y.Z lockstepcommit. It creates no tags../deployonly stages the bundle: it uploads toVARASYS/zddc-releases-pending/<ver>and reads back the stored sha256.release-on-merge.ymlruns these steps in order:release-keys/current.pem;deploy-origin.sh, the one swappable step, which holds every deploy credential and the history guard;deploy-releases.yml(and with it theworkflow_dispatchpath and theforceoverride) andverify-release.yml.Verified
sh .forgejo/scripts/test-release-on-merge.sh: 18 known-answer cases for decide and fetch, all pass. Three planted bugs (tag-at-another-commit check off, hash check off, signature check off) each turn cases red.release/MANIFESTis seeded with v0.0.57 and the live bundle's sha256, and all 7 v0.0.57 tags exist. So the first run after this merge decidesrelease=false(I checked this against origin).release-keys/current.pemmatches a live v0.0.57 signature and the operator machine's key (public halves only).-S warningis clean. A cold reviewer on a different model read the diff, and all of its findings are fixed in this commit.Not verified before a real release:
deploy-origin.shandrelease-record.shrun against the live origin and the real registry, so the first release is their test. That includes whetherPACKAGE_TOKENmay write the accumulator and whether the workflow token may create the tags.Needs before the first release
PACKAGE_TOKEN(Forgejo package write) on varasys/zddc, besideSTATIC_DEPLOY_KEYandDEPLOY_ORIGIN. A release whose credentials are missing now fails before it deploys anything../deployreads~/.git-token, which must become a bizon-agent token with package write.🤖 Generated with Claude Code