Build arm64 container in runner instead of QEMU #4460
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR builds the arm64 container image using a native arm machine, instead of using QEMU inside an amd64 machine. That possibility is available in GitHub since a few months ago.
Now both images are built in parallel and take just 5 minutes, instead of the 30 minutes required to build arm64 in QEMU.
The only problem is that now the images for each architecture (amd64 and arm64) must be built in a different runner, obviously, and when both jobs have finished, the container manifest must be rebuilt. In practice this ends up in a large and duplicated
container.yml
, but I couldn't find a more clean way to achieve this.