-
-
Notifications
You must be signed in to change notification settings - Fork 10.5k
workflows/docker: build and publish ARM64 Docker images #19275
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
This modifies the Docker workflow to first build the images natively on x86_64 and ARM64 runners, push them by digest to the registry, and then merge the manifest lists to form a tagged multi-platform image. This allows e.g. `docker run homebrew/brew` to work on both platforms. Ref: https://docs.docker.com/build/ci/github-actions/multi-platform/
16f66b8
to
364068e
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM. We can probably skip 18.04 on ARM, since we want to 🔥 that image anyway. See #19190.
Required CI checks need updating too by an org owner (or admin?).
Perhaps only want to push on |
Yes, please! |
Agreed 👍🏻 |
Co-authored-by: Bo Anderson <[email protected]>
Co-authored-by: Bo Anderson <[email protected]>
Thanks for opening this @ZhongRuoyu and @carlocab and @Bo98 for help getting over the line! |
|
Follow-up to #19275. Publishing `master` images was broken because the different matrix jobs were overwriting each other's outputs in the `merge` job. The fix is to pre-generate all the required data once up-front which we do in the `generate-tags` job.
Follow-up to #19275. Publishing `master` images was broken because the different matrix jobs were overwriting each other's outputs in the `merge` job. The fix is to pre-generate all the required data once up-front which we do in the `generate-tags` job.
Follow-up to #19275. Publishing `master` images was broken because the different matrix jobs were overwriting each other's outputs in the `merge` job. The fix is to pre-generate all the required data once up-front which we do in the `generate-tags` job.
brew style
with your changes locally?brew typecheck
with your changes locally?brew tests
with your changes locally?This modifies the Docker workflow to first build the images natively on x86_64 and ARM64 runners, push them by digest to the registry, and then merge the manifest lists to form a tagged multi-platform image. This allows e.g.
docker run homebrew/brew
to work on both platforms.Ref: https://docs.docker.com/build/ci/github-actions/multi-platform/