fix(ci): promote all image tags after attestation for GHCR UI#75
Conversation
GHCR sorts package versions by most-recent push timestamp. When actions/attest@v4 pushes the attestation referrer manifest after the image push, it becomes the most-recent artifact and displaces real tags (latest, x.y.z, x.y) in the UI, showing only the sha256 digest link instead. Remediation: loop over all tags from steps.meta.outputs.tags (using docker buildx imagetools create) after attestation completes. This re-touches each real tag, bumping their timestamp above the attestation referrer, so GHCR UI surfaces them first. Refs: #74
📝 WalkthroughWalkthroughThe release workflow is updated to generalize tag promotion post-attestation. Instead of conditionally re-tagging only Changes
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes Possibly related PRs
Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
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 |
Summary
actions/attest@v4pushes the attestation referrer manifest after the image, it becomes most-recent and displaces real tags (latest, semver) in the UI, showing only the sha256 digest link.steps.meta.outputs.tagsafter attestation completes, usingdocker buildx imagetools createto re-touch each real tag and bump their timestamp above the attestation referrer..github/workflows/release.yml— release job only, no code changes.Testing
actionlintvalidates workflow syntax (no new warnings)latestand semver tags (e.g.,v0.4.2,0.4) as primary options in package versions dropdown, NOT sha256 digest link as first optionCloses #74
Summary by CodeRabbit