Match bare-semver release tags in the multi-arch image publish - #666
Open
bburda wants to merge 1 commit into
Open
Match bare-semver release tags in the multi-arch image publish#666bburda wants to merge 1 commit into
bburda wants to merge 1 commit into
Conversation
bburda
force-pushed
the
fix/multiarch-release-tag-glob
branch
2 times, most recently
from
September 9, 2026 11:10
d120b96 to
cb48c10
Compare
Release tags in this repo are bare semver: 0.2.0 up to 0.7.0. Only the very first release, v0.1.0, used a `v` prefix. The workflow triggered on `v*` only, so it has never once run from a release tag push. That glob explains exactly one release. This workflow was added on 2026-07-08, after 0.6.0, so 0.2.0 through 0.6.0 have no multi-arch image because there was nothing to build them, not because of the trigger. 0.7.0 is the first release that could have matched, and did not. The `latest` tag keeps belonging to the main-branch workflow. The rule that looked like it gated `latest` is false for a bare semver tag, which is every release since 0.2.0, so it never fired. The tag was still created, by the action's default `latest=auto`, so a release took it over. Setting `flavor: latest=false` is what actually stops that.
bburda
force-pushed
the
fix/multiarch-release-tag-glob
branch
from
September 9, 2026 11:53
cb48c10 to
e79ea6b
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Pull Request
Summary
The multi-arch publish triggered on
v*tags only, but release tags here are bare semver. Only the very first release,v0.1.0, used avprefix, so this workflow has never once run from a release tag push. The trigger now matches both shapes. Neither pattern matches the bloomrelease/...,debian/...andupstream/...tags, which start with a letter.To be precise about what the glob costs: this workflow was added on 2026-07-08, after 0.6.0 was released. Releases 0.2.0 through 0.6.0 have no multi-arch image because there was nothing to build them, not because of the trigger. 0.7.0 is the first release the glob could have matched, and it did not, which is why that release had to be published by a manual dispatch.
:0.7.0exists today for all three distros as a result of that dispatch; older releases have no version tag at all.The
latesttag stays with the main-branch workflow. The rule that looked like it gatedlatestis false for a bare semver tag, which is every release since 0.2.0, so it never fired. The tag was created anyway by the action's defaultflavor: latest=auto. A manual dispatch on the 0.7.0 tag moved:latestfor all three distros because of that. The dead rule is gone andflavor: latest=falseis what actually stops it.Issue
Type
Testing
The workflow was dispatched on the 0.7.0 tag before this change, which is how the
latestbehaviour was found. It produced multi-arch manifest lists for jazzy, humble and lyrical, tagged0.7.0,0.7andsha-8b1969f, and also movedlatest. The merge job log shows the resolved tag list as["0.7.0","0.7","sha-8b1969f","latest"]next totype=raw,value=latest,enable=false, which is what pins the cause onlatest=autorather than on the explicit rule.flavor: latest=falsewas checked against the action's source rather than assumed: it gates only the extralatesttag and does not touch howtype=semverrenders the version, so a bare0.7.0tag still yields0.7.0and0.7.The change itself was then exercised, by pushing a throwaway
0.0.1tag at this branch. A tag push runs the workflow file the tag points at, so that run used the version in this PR.It behaved as intended, on all three counts:
event: pushon a bare semver tag. The oldv*trigger would not have matched it.["0.0.1","0.0","sha-d120b96"], with nolatest. The same job on the previous version resolved to["0.7.0","0.7","sha-8b1969f","latest"].0.0.1and0.0were still produced, soflavor: latest=falsegates only the extra tag and does not disturbtype=semveron a tag without avprefix.:latestdid not move: jazzy, humble and lyrical all still resolve to the digests they had before the run. The tag is gone from the repository, and the images the run published have been deleted from all three packages - the untagged per-architecture manifests as well, which a check by tag alone does not see.Checklist