Fix --tag parameter to properly push tags and update latest#168
Merged
euanh merged 1 commit intoapple:mainfrom Jan 7, 2026
Merged
Fix --tag parameter to properly push tags and update latest#168euanh merged 1 commit intoapple:mainfrom
euanh merged 1 commit intoapple:mainfrom
Conversation
The --tag parameter was accepted but not used when pushing the manifest and index to the registry. The code was always using destinationImage.reference (which defaults to 'latest') instead of the user-provided tag. This fix: - Pushes to both the specified --tag and the default reference (latest) - Avoids duplicate pushes if --tag matches the repository reference - Returns the correct reference in the result
5fe16eb to
87d59d6
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.
Fix --tag parameter to properly push tags and update latest
Motivation
The --tag parameter was accepted by containertool but had no effect on the
actual tags pushed to the registry. When running:
swift package build-container-image --repository ghcr.io/org/image --tag v1.0.0
The image was only pushed to
ghcr.io/org/image:latest(the default referencefrom --repository), while the output misleadingly reported
ghcr.io/org/image:v1.0.0.This made it impossible to publish versioned releases using the --tag flag.
Modifications
reference from --repository (typically 'latest')
Result
When --tag is provided, the image is pushed to both the specified tag AND the
default reference:
--tag v1.0.0 → pushes to v1.0.0 and latest
--tag latest → pushes to latest (once, no duplicate)
(no --tag) → pushes to latest (existing behavior)
Test Plan
swift package build-container-image --repository ghcr.io/org/image --tag v1.0.0docker pull ghcr.io/org/image:v1.0.0anddocker pull ghcr.io/org/image:latest