-
Notifications
You must be signed in to change notification settings - Fork 3
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
ARM64 Manylinux wheels #5
Comments
You can do multi-arch build on Cirrus via QEMU https://cirrus-ci.org/guide/docker-builder-vm/#multi-arch-builds This might help until we have native ARM containers as you mentioned. |
That's awesome @fkorotkov, thanks for pointing me in the right direction! If I have a pre-existing ARM64 docker image I want to use (the official Python EDIT: Gave it a shot, but got an immediate error on VM startup:
I'm assuming there's some step I'm missing that sets up the Docker runner in Cirrus to support QEMU emulation? |
Yeah, only |
@fkorotkov I managed to get it working with a little wrangling! It's not pretty, and it's as slow as you'd expect for emulation, but it seems to work nonetheless. Here's what I did with the .yml: # Build 64-bit ARM manylinux wheel
task:
name: "Build $SDL2DLL_PLATFORM (ARM64) wheel"
env:
matrix:
- SDL2DLL_PLATFORM: manylinux_2_24
compute_engine_instance:
image_project: cirrus-images
image: family/docker-builder
platform: linux
cpu: 4
memory: 4G
script:
- docker pull quay.io/pypa/manylinux_2_24_aarch64
- docker run --rm -e SDL2DLL_PLATFORM=manylinux_2_24 -v `pwd`:/io --platform arm64 quay.io/pypa/manylinux_2_24_aarch64 /io/manylinux.sh
binaries_artifacts:
path: "dist/*" For whatever the environment variables aren't working (I had to sub in An improved API for this would be wonderful though! Maybe something along the lines of: container:
image: quay.io/pypa/$SDL2DLL_PLATFORM_aarch64
architecture: arm64
memory: 4G or alternatively Thanks again for reaching out! |
As per #2, it would be nice to have manylinux ARM wheels given the popularity of devices like the RPi and the advent of systems like the Pinebook Pro.
If Cirrus CI ever gets native ARM container support adding this would be trivial, but until then it would require using QEMU in some capacity (cibuildwheel has examples on how to set this up with GitHub Actions, will need to see if that translates at all to Cirrus). Alternatively, I could just run the manylinux build script in the arm64 manylinux docker image locally via QEMU for releases but that would be a pain to maintain.
The text was updated successfully, but these errors were encountered: