ci: use arm runner for arm image build#1327
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #1327 +/- ##
==========================================
+ Coverage 37.96% 44.27% +6.30%
==========================================
Files 304 303 -1
Lines 32793 27690 -5103
==========================================
- Hits 12451 12259 -192
+ Misses 19602 14702 -4900
+ Partials 740 729 -11
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
There was a problem hiding this comment.
Pull request overview
This PR optimizes Docker image builds for ARM architecture by using native ARM runners instead of QEMU emulation on x86 runners, significantly reducing build times from ~45 minutes to an estimated <10 minutes.
Changes:
- Updated three workflows to use native ARM runners (
ubuntu-24.04-arm) in parallel with x86 runners - Refactored publish workflows to split building and manifest creation into separate jobs
- Removed QEMU setup steps as they're no longer needed with native ARM runners
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 4 comments.
| File | Description |
|---|---|
| .github/workflows/pull_request_docker_build_test.yml | Added ARM builds using native runners; removed QEMU setup; updated matrix to build both Dockerfiles on both platforms |
| .github/workflows/publish_dockerhub_main.yml | Split into parallel build jobs by platform and a manifest creation/signing job; uses digest-based multi-arch manifest creation |
| .github/workflows/publish_dockerhub_k8s_cache_main.yml | Same pattern as main workflow but for k8s-cache image; parallel builds with digest-based manifest creation |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 3 out of 3 changed files in this pull request and generated 6 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 3 out of 3 changed files in this pull request and generated 2 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 3 out of 3 changed files in this pull request and generated 3 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 3 out of 3 changed files in this pull request and generated 2 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
The image builds for obi and obi-cache were taking ~45m and ~18m respectively, mostly due to the ARM images being built inside a QEMU ARM VM on x86 runners.
This PR instead uses native ARM runners in parallel with the standard x86.
Affected workflows:
pull_request_docker_build_test.yml(PR build only, ARM previously skipped)publish_dockerhub_main.yml(main obi build and push)publish_dockerhub_k8s_cache_main.yml(main cache build and push)Outputs:
The expectation is that these workflows should be significantly faster (est. <10m).