Skip to content

Commit 2aa89db

Browse files
committed
ci: add manylinux aarch64 wheel builds
Extend the cibuildwheel matrix with CPython 3.8-3.14 linux aarch64 targets.\nConfigure CIBW_ARCHS_LINUX from matrix metadata and enable QEMU for\naarch64 linux jobs so builds run on ubuntu x86_64 runners.\nAlso document local cibuildwheel invocation for manylinux aarch64.
1 parent a6d5c7f commit 2aa89db

2 files changed

Lines changed: 14 additions & 1 deletion

File tree

.github/workflows/ci.yml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,13 @@ jobs:
3636
{os: ubuntu-24.04, dist: cp312-manylinux_x86_64},
3737
{os: ubuntu-24.04, dist: cp313-manylinux_x86_64},
3838
{os: ubuntu-24.04, dist: cp314-manylinux_x86_64},
39+
{os: ubuntu-24.04, dist: cp38-manylinux_aarch64, linuxarch: aarch64},
40+
{os: ubuntu-24.04, dist: cp39-manylinux_aarch64, linuxarch: aarch64},
41+
{os: ubuntu-24.04, dist: cp310-manylinux_aarch64, linuxarch: aarch64},
42+
{os: ubuntu-24.04, dist: cp311-manylinux_aarch64, linuxarch: aarch64},
43+
{os: ubuntu-24.04, dist: cp312-manylinux_aarch64, linuxarch: aarch64},
44+
{os: ubuntu-24.04, dist: cp313-manylinux_aarch64, linuxarch: aarch64},
45+
{os: ubuntu-24.04, dist: cp314-manylinux_aarch64, linuxarch: aarch64},
3946

4047
# cp38-manylinux_i686 disabled because pandas isn't prebuilt and takes 20 minutes to build.
4148
# {os: ubuntu-latest, dist: cp38-manylinux_i686},
@@ -144,12 +151,17 @@ jobs:
144151
]
145152
env:
146153
CIBW_BUILD: "${{ matrix.os_dist.dist }}"
154+
CIBW_ARCHS_LINUX: "${{ matrix.os_dist.linuxarch || 'auto' }}"
147155
CIBW_ARCHS_MACOS: "${{ matrix.os_dist.macosarch }}"
148156
CIBW_TEST_REQUIRES: cirq-core pytest
149157
CIBW_TEST_COMMAND: pytest {project}/src {project}/glue/cirq && stim help
150158
steps:
151159
- uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3
152160
- uses: actions/setup-python@3542bca2639a428e1796aaa6a2ffef0c0f575566 # v3
161+
- if: runner.os == 'Linux' && matrix.os_dist.linuxarch == 'aarch64'
162+
uses: docker/setup-qemu-action@c7c53464625b32c7a7e944ae62b3e17d2b600130 # v3
163+
with:
164+
platforms: arm64
153165
- run: python dev/overwrite_dev_versions_with_date.py
154166
- run: python -m pip install pybind11~=2.11.1 cibuildwheel~=3.3.1 setuptools wheel
155167
- run: python -m cibuildwheel --print-build-identifiers

doc/developer_documentation.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -518,8 +518,9 @@ cibuildwheels can also be invoked locally, assuming you have Docker installed, u
518518

519519
```bash
520520
CIBW_BUILD=cp39-manylinux_x86_64 cibuildwheel --platform linux
521+
CIBW_BUILD=cp39-manylinux_aarch64 CIBW_ARCHS_LINUX=aarch64 cibuildwheel --platform linux
521522
# output goes into wheelhouse/
522-
````
523+
```
523524

524525
When these wheels are finished building, they are automatically uploaded to
525526
pypi as a dev version of stim.

0 commit comments

Comments
 (0)