Add arm64 support to CI Docker builds#2
Conversation
4182cca to
253cc7e
Compare
| - name: Set up QEMU | ||
| uses: docker/setup-qemu-action@v4 |
There was a problem hiding this comment.
Yeah, this job still builds the builder-base image with qemu emulation. The base image is pretty quick so the emulation is fine for this one
| ghcr.io/python-discord/python-builds:builder-base | ||
| ghcr.io/python-discord/python-builds:builder-base-${{ needs.pyenv-version.outputs.pyenv_version }} | ||
|
|
||
| - name: Run Docker container to resolve versions |
There was a problem hiding this comment.
Was there no reason to run this script inside Docker in the first place?
There was a problem hiding this comment.
yeah, previously pyenv was only available in the base image, so running it in docker meant we didn't have to install pyenv.
Previous we had to build the docker image to know what to build, this caused bugs since the main image always used the base builder image from ghcr, rather than what was on a PR.
| ghcr.io/python-discord/python-builds:${{ inputs.tag }}-linux-amd64 \ | ||
| ghcr.io/python-discord/python-builds:${{ inputs.tag }}-linux-arm64 |
There was a problem hiding this comment.
Is there a way to avoid hard-coding the platforms here?
There was a problem hiding this comment.
Not easily, GitHub Actions doesn't natively aggregate matrix job outputs, so there's no clean way to pass the platform list from the build matrix into merge.
Since the platforms are tied to the available runner types (both defined in the same file), I think this acceptable vs adding a lot of complexity to not hard code here.
|
Why is the value not evaluated in the name of the skipped steps? They all look like this verbatim: |
The github interpolation only happens when the step is evaluated, if it's skipped Github is lazy and doesn't expand the template |
Builds and pushes multi-platform Docker images for both amd64 and arm64.