8000 Build Linux aarch64 wheels on native arm64 CI runner by asyschikov · Pull Request #88 · irmen/pyminiaudio · GitHub
[go: up one dir, main page]

Skip to content

Build Linux aarch64 wheels on native arm64 CI runner - #88

Closed
asyschikov wants to merge 1 commit into
irmen:masterfrom
asyschikov:linux-aarch64-wheels
Closed

asyschikov wants to merge 1 commit into
irmen:masterfrom
asyschikov:linux-aarch64-wheels

Conversation

@asyschikov
@asyschikov asyschikov commented Sep 21, 2026 •
Copy link
Copy Markdown

Summary

Adds Linux aarch64 (arm64) wheel builds to CI and the release pipeline by adding GitHub's native ubuntu-24.04-arm runner to the cibuildwheel matrix in both workflows:

  • .github/workflows/wheeltest.yml (CI)
  • .github/workflows/wheelbuilder.yml (release → PyPI)

cibuildwheel auto-detects the native architecture on the runner, so no extra config is needed: it builds manylinux/musllinux aarch64 wheels for all the versions in CIBW_BUILD (cp310–cp314), and the existing CIBW_TEST_COMMAND_LINUX runs the full test suite against each built wheel inside the container, exactly as it does for x86_64 today.

Why a native runner instead of QEMU emulation

Native arm64 runners are available for free on public repos and build roughly an order of magnitude faster than emulated (docker/setup-qemu-action + CIBW_ARCHS_LINUX: aarch64 on x86_64) builds, so there is no need to slow down the CI matrix with emulation.

Verification

Built and tested locally on an arm64 machine with cibuildwheel (Docker, aarch64 containers):

CIBW_PLATFORM=linux CIBW_ARCHS=aarch64 CIBW_BUILD='cp312-*' \
CIBW_TEST_REQUIRES=pytest CIBW_TEST_COMMAND='cd {project} && pytest -v tests/' cibuildwheel

Result:

  • miniaudio-1.72-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl — built in 16s
  • miniaudio-1.72-cp312-cp312-musllinux_1_2_aarch64.whl — built in 24s
  • Test suite against the built wheels inside the aarch64 containers: 56 passed

Add ubuntu-24.04-arm to the cibuildwheel matrix in both the CI
(wheeltest) and release (wheelbuilder) workflows. cibuildwheel
auto-detects the native aarch64 architecture on this runner and
builds manylinux/musllinux aarch64 wheels, and runs the existing
Linux test suite against them.
@irmen
irmen commented Oct 31, 2026
Copy link
Copy Markdown
Owner

has been resolved by merging a later PR

@irmen irmen closed this Oct 31, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

0