Skip to content

ci(main): make latest explicit-only, immune to auto-tagging - #46

Merged
coretl merged 1 commit into
mainfrom
fix/main-explicit-latest
Jul 29, 2026
Merged

ci(main): make latest explicit-only, immune to auto-tagging#46
coretl merged 1 commit into
mainfrom
fix/main-explicit-latest

Conversation

@coretl

@coretl coretl commented Jul 29, 2026

Copy link
Copy Markdown
Contributor

Root cause

The merge job's "Create tags for publishing image" step uses docker/metadata-action with no flavor: input, so it falls back to the action default flavor: latest=auto. Because the tag list includes type=ref,event=tag, any tag push whose version isn't pre-release semver auto-generates a latest tag — meaning latest can be won by whichever branch releases most recently (e.g. a noble release), not just resolute (main) releases.

Fix

Add flavor: latest=false to disable the automatic latest tag. The existing explicit type=raw,value=latest entry in the tags: list is kept, so latest is still produced on every main (resolute) release — it's just no longer producible by the auto-tagging heuristic, so another branch's release can't steal it. The resolute and 26.04 tags are unchanged.

Follow-up (not done in this PR)

Live latest in GHCR still points at the noble image from today's release; it will self-correct on the next resolute (main) release, or an admin can re-point it manually. This PR only stops future noble releases from stealing it.

Companion PR

A matching PR targeting noble adds flavor: latest=false to that branch's metadata-action step too, since noble's tag list currently still includes type=ref,event=tag and would otherwise still auto-generate latest on its own.


Generated by Claude Code

docker/metadata-action defaults to flavor: latest=auto, which
auto-adds a latest tag on tag pushes since type=ref,event=tag is
present. Set flavor: latest=false so latest is only produced by the
explicit type=raw,value=latest entry below, which tracks resolute
(main) releases and can no longer be overridden by auto-tagging
logic on another branch.
@coretl
coretl merged commit c95d9ac into main Jul 29, 2026
3 checks passed
@coretl
coretl deleted the fix/main-explicit-latest branch July 29, 2026 11:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant