3434 - os : " ubuntu-latest"
3535 cibuild : " *musllinux*"
3636 cibw_arch : " musllinux"
37+ - os : " ubuntu-24.04-arm" # aarch64 manylinux on ARM runner
38+ cibuild : " *manylinux*"
39+ cibw_arch : " aarch64"
3740 steps :
3841 - name : Free Disk Space (Ubuntu)
3942 if : matrix.os == 'ubuntu-latest'
@@ -48,29 +51,44 @@ jobs:
4851 uses : styfle/cancel-workflow-action@0.12.1
4952 - uses : actions/checkout@v4
5053 - name : ccache
54+ if : matrix.os != 'ubuntu-24.04-arm'
5155 uses : hendrikmuhs/ccache-action@v1.2
5256 with :
5357 key : ${{ github.job }}-${{ matrix.os }}-${{ matrix.cibuild }} # Make cache specific to OS
5458 max-size : " 5G"
5559 - name : Install dependencies
60+ if : matrix.os != 'ubuntu-24.04-arm'
5661 run : |
5762 env
5863 export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH"
5964 echo "/usr/lib/ccache:/usr/local/opt/ccache/libexec" >> $GITHUB_PATH
6065 HOST_CCACHE_DIR="$(ccache -k cache_dir)"
6166 mkdir -p $HOST_CCACHE_DIR
62- - name : Build wheels # check https://cibuildwheel.readthedocs.io/en/stable/setup/#github-actions
67+ - name : Build wheels (ARM)
68+ if : matrix.os == 'ubuntu-24.04-arm'
69+ uses : pypa/cibuildwheel@v2.23.3
70+ env :
71+ # override the default CentOS “yum install … ccache” and drop ccache
72+ CIBW_BEFORE_ALL_LINUX : |
73+ yum install -y \
74+ zlib-devel \
75+ curl-devel \
76+ expat-devel \
77+ libpng-devel
78+ CIBW_BEFORE_BUILD_LINUX : " true"
79+ CIBW_BUILD : ${{ matrix.cibuild }}
80+ CIBW_ARCHS_LINUX : ${{ matrix.cibw_arch }}
81+
82+ - name : Build wheels (all other platforms)
83+ if : matrix.os != 'ubuntu-24.04-arm'
6384 uses : pypa/cibuildwheel@v2.23.3
64- # to supply options, put them in 'env', like:
65- # env:
66- # CIBW_SOME_OPTION: value
6785 env :
6886 CIBW_BUILD : ${{ matrix.cibuild }}
6987 CIBW_ARCHS_MACOS : ${{ matrix.macos-arch }}
7088 CIBW_DEPENDENCY_VERSIONS_MACOS : cibw_constraints.txt
7189
7290 - name : Download Cache from Docker (linux only)
73- if : ${{ runner.os == 'Linux' }}
91+ if : runner.os == 'Linux' && matrix.os != 'ubuntu-24.04-arm'
7492 # hack until https://github.com/pypa/cibuildwheel/issues/1030 is fixed
7593 run : |
7694 env
0 commit comments