fix: prevent release channel publication starvation - #4806
Conversation
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
746050b to
674274d
Compare
|
Reopening to refresh CI after a reviewer fix-forward commit on the PR branch. |
674274d to
f9979f5
Compare
Signed-off-by: Danathar <doug.baggett@gmail.com>
Keep immutable short-SHA image tags immutable across workflow reruns by leaving an existing SHA tag untouched, and only advance moving tags when the current workflow generation is strictly newer. Add a scheduled GHCR cleanup path for old pure short-SHA versions so per-build tags remain bounded while moving tags and channels stay protected. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Signed-off-by: Andrew Anderson <andy@clubanderson.com>
f9979f5 to
0450e81
Compare
|
Thanks, Danathar, for identifying and fixing the release-channel publication starvation path. I carried the core fix forward through #4811, including idempotent immutable short-SHA publishing for successful builds and a 90-day cleanup workflow for old pure short-SHA image tags to keep growth bounded. #4811 has now merged as f992bfa, so I am closing this PR as superseded. |
Summary
Why this cannot regress tags
Each platform image carries
io.kubestellar.hive.github-actions-run-number. Before moving a mutable tag, the publisher reads the generation already attached to that tag. A queued run may advance tags whose published generation is older, but it leaves independently newer tags untouched. Re-runs of the same workflow generation remain idempotent.Existing unlabeled tags are generation 0, so the first post-merge run migrates them without manual registry work. The exact Buildx query was verified against the current public
stableimage, which correctly returned an empty legacy label set.Validation
shellcheck src/scripts/publish-image-tags.sh src/scripts/test-publish-image-tags.shbash src/scripts/test-publish-image-tags.shbash src/scripts/check-release-lines.shbash src/scripts/test-release-lines-guard.shyqgit diff --checkThe publisher tests cover missing and legacy tags, forward progress, stale out-of-order runs, per-tag independence, feature-branch channel isolation, and fail-closed registry errors. The secondary dashboard
? behindpresentation noted in the issue is intentionally left for a separate UI change.Fixes #4804
— hive: backend=codex