Skip to content

Commit d10683e

Browse files
Merge pull request #2058 from tvt173/support-arm-linux
support arm linux
2 parents dfd7d8e + 0bf0b52 commit d10683e

File tree

1 file changed

+23
-5
lines changed

1 file changed

+23
-5
lines changed

.github/workflows/build.yml

Lines changed: 23 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,9 @@ jobs:
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

Comments
 (0)