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.
Reviewers
r? @vcheung-stripe
cc @stripe/developer-products
Summary
In this PR, I included the arch in the image template. This lets us pull the correct version when specifying the image with the arch like so:
However, we were no longer publishing to the old image names (ex.
stripe/stripe-cli:latest
) so they still returned an image with an stripe v1.13.0 with only the ARM64 build.This change adds a docker_manifests step to the goreleaser, which will allow us to publish a manifest list to the previous image names. In other words,
stripe/stripe-cli:latest
will now become a manifest list that contains multi-arch images, and docker will figure out what specific image to pull down.About docker manifests: https://docs.docker.com/engine/reference/commandline/manifest/
Following guide here.
Testing
I was not able to find a way to test this locally. I could run a snapshot version of the releaser but it bypasses the publishing step which also happens to bypass manifest builds:
Warning from the goreleaser docs:
"Unfortunately, the manifest tool needs the images to be pushed to create the manifest, that's why we both create and push it in the publishing phase."