Skip to content

Conversation

ZhongRuoyu
Copy link
Member

  • Have you followed the guidelines in our Contributing document?
  • Have you checked to ensure there aren't other open Pull Requests for the same change?
  • Have you added an explanation of what your changes do and why you'd like us to include them?
  • Have you written new tests for your changes? Here's an example.
  • Have you successfully run brew style with your changes locally?
  • Have you successfully run brew typecheck with your changes locally?
  • Have you successfully run 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/

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/
Copy link
Member

@carlocab carlocab left a 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?).

@Bo98
Copy link
Member

Bo98 commented Feb 12, 2025

Perhaps only want to push on master tags initially too? And then do release tags after some bottle coverage?

@MikeMcQuaid
Copy link
Member

Perhaps only want to push on master tags initially too? And then do release tags after some bottle coverage?

Yes, please!

@MikeMcQuaid
Copy link
Member

LGTM. We can probably skip 18.04 on ARM, since we want to 🔥 that image anyway. See #19190.

Agreed 👍🏻

@ZhongRuoyu ZhongRuoyu added the in progress Maintainers are working on this label Mar 4, 2025
Co-authored-by: Bo Anderson <[email protected]>
@MikeMcQuaid MikeMcQuaid marked this pull request as ready for review March 13, 2025 10:04
@MikeMcQuaid
Copy link
Member

Thanks for opening this @ZhongRuoyu and @carlocab and @Bo98 for help getting over the line!

@MikeMcQuaid MikeMcQuaid added this pull request to the merge queue Mar 13, 2025
Merged via the queue into master with commit b16a2e9 Mar 13, 2025
40 checks passed
@MikeMcQuaid MikeMcQuaid deleted the docker-image-arm64 branch March 13, 2025 10:16
@carlocab
Copy link
Member

master images are no longer being published. Looking at it.

carlocab added a commit that referenced this pull request Mar 13, 2025
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.
carlocab added a commit that referenced this pull request Mar 13, 2025
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.
carlocab added a commit that referenced this pull request Mar 13, 2025
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.
@cho-m cho-m mentioned this pull request Apr 2, 2025
12 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
in progress Maintainers are working on this
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants