4242 FORCE_COLOR : 1
4343
4444jobs :
45- build-1-QEMU-emulated-wheels :
46- if : github.event_name != 'schedule'
47- name : aarch64 ${{ matrix.python-version }} ${{ matrix.spec }}
48- runs-on : ubuntu-latest
49- strategy :
50- fail-fast : false
51- matrix :
52- python-version :
53- - pp310
54- - cp3{9,10,11}
55- - cp3{12,13}
56- spec :
57- - manylinux2014
58- - manylinux_2_28
59- - musllinux
60- exclude :
61- - { python-version: pp310, spec: musllinux }
62-
63- steps :
64- - uses : actions/checkout@v4
65- with :
66- persist-credentials : false
67- submodules : true
68-
69- - uses : actions/setup-python@v5
70- with :
71- python-version : " 3.x"
72-
73- # https://github.com/docker/setup-qemu-action
74- - name : Set up QEMU
75- uses : docker/setup-qemu-action@v3
76-
77- - name : Install cibuildwheel
78- run : |
79- python3 -m pip install -r .ci/requirements-cibw.txt
80-
81- - name : Build wheels
82- run : |
83- python3 -m cibuildwheel --output-dir wheelhouse
84- env :
85- # Build only the currently selected Linux architecture (so we can
86- # parallelise for speed).
87- CIBW_ARCHS : " aarch64"
88- # Likewise, select only one Python version per job to speed this up.
89- CIBW_BUILD : " ${{ matrix.python-version }}-${{ matrix.spec == 'musllinux' && 'musllinux' || 'manylinux' }}*"
90- CIBW_ENABLE : cpython-prerelease
91- # Extra options for manylinux.
92- CIBW_MANYLINUX_AARCH64_IMAGE : ${{ matrix.spec }}
93- CIBW_MANYLINUX_PYPY_AARCH64_IMAGE : ${{ matrix.spec }}
94-
95- - uses : actions/upload-artifact@v4
96- with :
97- name : dist-qemu-${{ matrix.python-version }}-${{ matrix.spec }}
98- path : ./wheelhouse/*.whl
99-
100- build-2-native-wheels :
45+ build-native-wheels :
10146 if : github.event_name != 'schedule' || github.repository_owner == 'python-pillow'
10247 name : ${{ matrix.name }}
10348 runs-on : ${{ matrix.os }}
@@ -132,6 +77,14 @@ jobs:
13277 cibw_arch : x86_64
13378 build : " *manylinux*"
13479 manylinux : " manylinux_2_28"
80+ - name : " manylinux2014 and musllinux aarch64"
81+ os : ubuntu-24.04-arm
82+ cibw_arch : aarch64
83+ - name : " manylinux_2_28 aarch64"
84+ os : ubuntu-24.04-arm
85+ cibw_arch : aarch64
86+ build : " *manylinux*"
87+ manylinux : " manylinux_2_28"
13588 steps :
13689 - uses : actions/checkout@v4
13790 with :
@@ -152,7 +105,9 @@ jobs:
152105 env :
153106 CIBW_ARCHS : ${{ matrix.cibw_arch }}
154107 CIBW_BUILD : ${{ matrix.build }}
155- CIBW_ENABLE : cpython-prerelease cpython-freethreading
108+ CIBW_ENABLE : cpython-prerelease cpython-freethreading pypy
109+ CIBW_MANYLINUX_AARCH64_IMAGE : ${{ matrix.manylinux }}
110+ CIBW_MANYLINUX_PYPY_AARCH64_IMAGE : ${{ matrix.manylinux }}
156111 CIBW_MANYLINUX_PYPY_X86_64_IMAGE : ${{ matrix.manylinux }}
157112 CIBW_MANYLINUX_X86_64_IMAGE : ${{ matrix.manylinux }}
158113 CIBW_SKIP : pp39-*
@@ -229,7 +184,7 @@ jobs:
229184 CIBW_ARCHS : ${{ matrix.cibw_arch }}
230185 CIBW_BEFORE_ALL : " {package}\\ winbuild\\ build\\ build_dep_all.cmd"
231186 CIBW_CACHE_PATH : " C:\\ cibw"
232- CIBW_ENABLE : cpython-prerelease cpython-freethreading
187+ CIBW_ENABLE : cpython-prerelease cpython-freethreading pypy
233188 CIBW_SKIP : pp39-*
234189 CIBW_TEST_SKIP : " *-win_arm64"
235190 CIBW_TEST_COMMAND : ' docker run --rm
@@ -275,7 +230,7 @@ jobs:
275230
276231 scientific-python-nightly-wheels-publish :
277232 if : github.repository_owner == 'python-pillow' && (github.event_name == 'schedule' || github.event_name == 'workflow_dispatch')
278- needs : [build-2- native-wheels, windows]
233+ needs : [build-native-wheels, windows]
279234 runs-on : ubuntu-latest
280235 name : Upload wheels to scientific-python-nightly-wheels
281236 steps :
@@ -292,7 +247,7 @@ jobs:
292247
293248 pypi-publish :
294249 if : github.repository_owner == 'python-pillow' && github.event_name == 'push' && startsWith(github.ref, 'refs/tags')
295- needs : [build-1-QEMU-emulated-wheels, build-2- native-wheels, windows, sdist]
250+ needs : [build-native-wheels, windows, sdist]
296251 runs-on : ubuntu-latest
297252 name : Upload release to PyPI
298253 environment :
0 commit comments