@@ -10,50 +10,82 @@ jobs:
1010 fail-fast : false
1111
1212 matrix :
13- image :
14- - ' manylinux2014_aarch64'
15- - ' musllinux_1_1_aarch64'
16- - ' musllinux_1_2_aarch64'
17- - ' manylinux2014_i686'
18- - ' musllinux_1_2_i686'
19- - ' manylinux2014_ppc64le'
20- - ' musllinux_1_2_ppc64le'
21- - ' manylinux2014_s390x'
22- - ' musllinux_1_2_s390x'
23- - ' manylinux2014_x86_64'
24- - ' musllinux_1_1_x86_64'
25- - ' musllinux_1_2_x86_64'
2613 py :
27- - ' cp39-cp39'
28- - ' cp310-cp310'
29- - ' cp311-cp311'
30- - ' cp312-cp312'
31- - ' cp313-cp313'
32- - ' cp314-cp314'
14+ - ' cp39'
15+ - ' cp310'
16+ - ' cp311'
17+ - ' cp312'
18+ - ' cp313'
19+ - ' cp314'
20+ arch :
21+ - ' aarch64'
22+ - ' i686'
23+ - ' ppc64le'
24+ - ' s390x'
25+ - ' x86_64'
26+ abi :
27+ - ' manylinux'
28+ - ' musllinux'
29+ image :
30+ - ' manylinux2014'
31+ - ' musllinux_1_1'
32+ - ' musllinux_1_2'
3333 exclude :
34- - image : ' musllinux_1_1_aarch64'
35- py : ' cp314-cp314'
36- - image : ' musllinux_1_1_x86_64'
37- py : ' cp314-cp314'
38- runs-on : ${{ endsWith(matrix.image, 'aarch64') && 'ubuntu-22.04-arm' || 'ubuntu-22.04' }}
34+ # Cancel out abi - image mismatch.
35+ - abi : ' manylinux'
36+ image : ' musllinux_1_1'
37+ - abi : ' manylinux'
38+ image : ' musllinux_1_2'
39+ - abi : ' musllinux'
40+ image : ' manylinux2014'
41+ # Remove some older ABIs that don't need to exist.
42+ - arch : ' i686'
43+ image : ' musllinux_1_1'
44+ - arch : ' ppc64le'
45+ image : ' musllinux_1_1'
46+ - arch : ' s390x'
47+ image : ' musllinux_1_1'
48+ # Drop support for musllinux_1_1 on 3.14+
49+ - py : ' cp314'
50+ image : ' musllinux_1_1'
51+ runs-on : ${{ matrix.arch == 'aarch64' && 'ubuntu-22.04-arm' || 'ubuntu-22.04' }}
52+ env :
53+ CIBW_ARCHS : ${{ matrix.arch }}
54+ CIBW_BUILD : ${{ matrix.py }}-${{ matrix.abi }}_${{ matrix.arch }}
55+ CIBW_BUILD_VERBOSITY : ' 1'
56+ CIBW_MANYLINUX_AARCH64_IMAGE : quay.io/pypa/${{ matrix.image }}_aarch64:latest
57+ CIBW_MANYLINUX_I686_IMAGE : quay.io/pypa/${{ matrix.image }}_i686:latest
58+ CIBW_MANYLINUX_PPC64LE_IMAGE : quay.io/pypa/${{ matrix.image }}_ppc64le:latest
59+ CIBW_MANYLINUX_S390X_IMAGE : quay.io/pypa/${{ matrix.image }}_s390x:latest
60+ CIBW_MANYLINUX_X86_64_IMAGE : quay.io/pypa/${{ matrix.image }}_x86_64:latest
61+ CIBW_MUSLLINUX_AARCH64_IMAGE : quay.io/pypa/${{ matrix.image }}_aarch64:latest
62+ CIBW_MUSLLINUX_I686_IMAGE : quay.io/pypa/${{ matrix.image }}_i686:latest
63+ CIBW_MUSLLINUX_PPC64LE_IMAGE : quay.io/pypa/${{ matrix.image }}_ppc64le:latest
64+ CIBW_MUSLLINUX_S390X_IMAGE : quay.io/pypa/${{ matrix.image }}_s390x:latest
65+ CIBW_MUSLLINUX_X86_64_IMAGE : quay.io/pypa/${{ matrix.image }}_x86_64:latest
3966 steps :
4067 - uses : actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
4168 with :
4269 persist-credentials : false
4370
71+ - name : Install uv
72+ uses : astral-sh/setup-uv@d9e0f98d3fc6adb07d1e3d37f3043649ddad06a1 # v6.5.0
73+ with :
74+ version : " 0.8.11"
75+
4476 - name : Set up QEMU
45- if : ${{ endsWith( matrix.image, 'ppc64le') || endsWith( matrix.image, 's390x') }}
77+ if : ${{ matrix.arch == 'ppc64le' || matrix.arch == 's390x' }}
4678 uses : docker/setup-qemu-action@29109295f81e9208d7d86ff1c6c12d2833863392 # v3.6.0
4779
48- - name : Build Wheel
80+ - name : Build wheels
4981 run : |
50- docker run -e PYPATH=/opt/python/${{ matrix.py }} -e ZSTD_WARNINGS_AS_ERRORS=1 --rm -v `pwd`:/project quay.io/pypa/${{ matrix.image }} /project/ci/build-manylinux-wheel.sh
82+ 5183
5284 - name : Upload Wheel
5385 uses : actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
5486 with :
55- name : linux-${{ matrix.py }}-${{ matrix.image }}
56- path : dist
87+ name : linux-${{ matrix.py }}-${{ matrix.arch }}-${{ matrix.abi }}-${{ matrix. image }}
88+ path : ./wheelhouse/*.whl
5789
5890 macos :
5991 strategy :
@@ -71,77 +103,70 @@ jobs:
71103 - ' x86_64'
72104 runs-on : ${{ matrix.arch == 'x86_64' && 'macos-13' || 'macos-14' }}
73105 env :
74- CIBW_ARCHS : ${{ matrix.arch }}
75- CIBW_BUILD : ${{ matrix.py }}-*
106+ CIBW_ARCHES : ${{ matrix.arch }}
107+ CIBW_BUILD : ${{ matrix.py }}-macosx_${{ matrix.arch }}
76108 CIBW_BUILD_VERBOSITY : ' 1'
77- ZSTD_WARNINGS_AS_ERRORS : ' 1'
78109 steps :
79- - name : Set up Python
80- uses : actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0
81- with :
82- python-version : ' 3.13'
83-
84110 - uses : actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
85111 with :
86112 persist-credentials : false
87113
88- - name : Install Dependencies
89- run : |
90- python -m pip install --require-hashes -r ci/requirements.macoswheels.txt
114+ - name : Install uv
115+ uses : astral-sh/setup-uv@d9e0f98d3fc6adb07d1e3d37f3043649ddad06a1 # v6.5.0
116+ with :
117+ version : " 0.8.11"
91118
92- - name : Build Wheel
119+ - name : Build wheels
93120 run : |
94- cibuildwheel --output-dir dist
121+ 95122
96123 - name : Upload Wheel
97124 uses : actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
98125 with :
99126 name : macos-${{ matrix.py }}-${{ matrix.arch }}
100- path : dist
127+ path : ./wheelhouse/*.whl
101128
102129 windows :
103130 strategy :
104131 fail-fast : false
105132 matrix :
106133 py :
107- - ' 3.9 '
108- - ' 3.10 '
109- - ' 3.11 '
110- - ' 3.12 '
111- - ' 3.13 '
112- - ' 3.14 '
134+ - ' cp39 '
135+ - ' cp310 '
136+ - ' cp311 '
137+ - ' cp312 '
138+ - ' cp313 '
139+ - ' cp314 '
113140 arch :
114- - ' x86 '
115- - ' x64 '
116- - ' arm64 '
141+ - ' win32 '
142+ - ' win_amd64 '
143+ - ' win_arm64 '
117144 exclude :
118- - py : ' 3.8'
119- arch : ' arm64'
120- - py : ' 3.9'
121- arch : ' arm64'
122- - py : ' 3.10'
123- arch : ' arm64'
124- runs-on : ${{ matrix.arch == 'arm64' && 'windows-11-arm' || 'windows-2022' }}
145+ - py : ' cp39'
146+ arch : ' win_arm64'
147+ - py : ' cp310'
148+ arch : ' win_arm64'
149+ runs-on : ${{ matrix.arch == 'win_arm64' && 'windows-11-arm' || 'windows-2022' }}
125150 env :
126- ZSTD_WARNINGS_AS_ERRORS : ' 1'
151+ CIBW_ARCHES : ${{ matrix.arch }}
152+ CIBW_BUILD : ${{ matrix.py }}-${{ matrix.arch }}
153+ CIBW_BUILD_VERBOSITY : ' 1'
127154 steps :
128- - name : Set up Python
129- uses : actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0
130- with :
131- python-version : ${{ matrix.py }}
132- architecture : ${{ matrix.arch }}
133- allow-prereleases : true
134-
135155 - uses : actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
136156 with :
137157 persist-credentials : false
138158
139- - name : Build Wheel
159+ - name : Install uv
160+ uses : astral-sh/setup-uv@d9e0f98d3fc6adb07d1e3d37f3043649ddad06a1 # v6.5.0
161+ with :
162+ version : " 0.8.11"
163+
164+ - name : Build wheels
140165 run : |
141- python -m pip wheel -w dist .
166+ 142167
143168 - name : Upload Wheel
144169 uses : actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
145170 with :
146171 name : windows-${{ matrix.py }}-${{ matrix.arch }}
147- path : dist
172+ path : ./wheelhouse/*.whl
0 commit comments