-
Notifications
You must be signed in to change notification settings - Fork 141
ci(l1,l2): add ARM builds for Docker #5465
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
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.
Pull request overview
This PR adds support for building ARM64 Docker images for both L1 and L2 variants of ethrex, enabling deployment on ARM-based platforms.
- Implements multi-architecture Docker builds using GitHub Actions matrix strategy for both amd64 and arm64
- Introduces architecture-specific solc binary downloads in the Dockerfile
- Creates multi-arch Docker manifests by combining individual platform builds
Reviewed changes
Copilot reviewed 4 out of 4 changed files in this pull request and generated 5 comments.
| File | Description |
|---|---|
| Dockerfile | Adds conditional logic to download the appropriate solc binary based on architecture (aarch64 vs x86_64) |
| .github/workflows/tag_release.yaml | Refactors Docker build job to use matrix strategy for multi-platform builds and adds publish-docker job to create multi-arch manifests |
| .github/workflows/tag_latest.yaml | Updates image retagging logic to use docker buildx imagetools for multi-arch manifest manipulation |
| .github/actions/build-docker/action.yml | Adds platforms input parameter to support building for specific architectures |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
MegaRedHand
left a comment
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. Also, copilot raises some maybe-valid points
| platforms: | ||
| description: "Comma-separated list of platforms to build for" | ||
| required: false | ||
| default: "linux/amd64" |
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.
I think the description is stale. This is not a list
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.
Although in most cases it'd be a single platform (for perfomance issues), it can technically be a list
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.
Also addressed Copilot comments
| arch: amd64 | ||
| - platform: ubuntu-22.04-arm | ||
| arch: arm64 | ||
| runs-on: ${{ matrix.platform }} |
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.
Docker supports cross-platform builds using QEMU, but in my tests there were to much slower than build them in parallel natively
Motivation
We want to offer ARM Docker images for both L1 and L2.
Description
Add support for ARM images and update CI release workflows to build so.
Closes #3667