Skip to content

fix(ci): Add multi-platform build for arm64 support#3

Merged
nfebe merged 1 commit into
mainfrom
fix/multi-platform-build
Mar 27, 2026
Merged

fix(ci): Add multi-platform build for arm64 support#3
nfebe merged 1 commit into
mainfrom
fix/multi-platform-build

Conversation

@nfebe

@nfebe nfebe commented Mar 27, 2026

Copy link
Copy Markdown
Contributor

Build workflow now uses per-platform runners (ubuntu-latest for amd64, ubuntu-24.04-arm for arm64) with digest-based push and manifest merge, matching the laravel-docker-dev approach. The tag-latest job now uses imagetools to preserve both platforms.

Build workflow now uses per-platform runners (ubuntu-latest for amd64,
ubuntu-24.04-arm for arm64) with digest-based push and manifest merge,
matching the laravel-docker-dev approach. The tag-latest job now uses
imagetools to preserve both platforms.

Signed-off-by: nfebe <fenn25.fn@gmail.com>
@sourceant

sourceant Bot commented Mar 27, 2026

Copy link
Copy Markdown

Code Review Summary

The PR successfully implements multi-platform support (amd64/arm64) for the FrankenPHP image. It moves away from simple tagging to a more robust digest-based manifest merging strategy.

🚀 Key Improvements

  • Added native ARM64 runner support via ubuntu-24.04-arm.
  • Implemented manifest list creation using docker buildx imagetools.
  • Improved cache isolation by including platform in the cache scope.

💡 Minor Suggestions

  • Standardize artifact naming to use platform names instead of runner names.

@sourceant sourceant Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review complete. See the overview comment for a summary.

if: github.event_name != 'pull_request'
uses: actions/upload-artifact@v4
with:
name: digest-${{ matrix.php }}-${{ matrix.runner }}

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Using matrix.platform instead of matrix.runner in the artifact name is more descriptive of the actual payload, though the current implementation works.

Suggested change
name: digest-${{ matrix.php }}-${{ matrix.runner }}
name: digest-${{ matrix.php }}-${{ matrix.platform }}

@nfebe nfebe merged commit d0625d0 into main Mar 27, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant