5
5
runs-on : ubuntu-20.04
6
6
steps :
7
7
- name : clone repo
8
- uses : actions/checkout@v2
8
+ uses : actions/checkout@v4
9
9
10
10
- name : build sdist
11
11
run : |
@@ -14,48 +14,55 @@ jobs:
14
14
python -m build --sdist
15
15
16
16
- name : upload sdist artifact
17
- uses : actions/upload-artifact@v2
17
+ uses : actions/upload-artifact@v3
18
18
with :
19
19
path : dist
20
20
if-no-files-found : error
21
21
22
22
linux :
23
23
runs-on : ubuntu-20.04
24
24
strategy :
25
+ fail-fast : false
25
26
matrix :
26
27
include :
27
- - spec : cp27-manylinux_x86_64
28
- cibw_version : cibuildwheel<2.0 # py2.7 is not supported on CIBW 2.0+
29
- manylinux_img : manylinux1 # build really old Pythons on manylinux1
30
- - spec : cp36-manylinux_x86_64
31
- manylinux_img : manylinux1 # build really old Pythons on manylinux1
32
- - spec : cp37-manylinux_x86_64
33
28
- spec : cp38-manylinux_x86_64
34
29
- spec : cp39-manylinux_x86_64
35
30
- spec : cp310-manylinux_x86_64
36
31
- spec : cp311-manylinux_x86_64
37
- - spec : cp27-manylinux_i686
38
- cibw_version : cibuildwheel<2.0 # py2.7 is not supported on CIBW 2.0+
39
- manylinux_img : manylinux1 # build really old Pythons on manylinux1
40
- - spec : cp36-manylinux_i686
41
- manylinux_img : manylinux1 # build really old Pythons on manylinux1
42
- - spec : cp37-manylinux_i686
32
+ - spec : cp312-manylinux_x86_64
33
+
43
34
- spec : cp38-manylinux_i686
44
35
- spec : cp39-manylinux_i686
45
36
- spec : cp310-manylinux_i686
46
37
- spec : cp311-manylinux_i686
38
+ - spec : cp312-manylinux_i686
39
+
47
40
- spec : cp39-musllinux_x86_64
48
41
- spec : cp310-musllinux_x86_64
49
42
- spec : cp311-musllinux_x86_64
43
+ - spec : cp312-musllinux_x86_64
44
+
50
45
- spec : cp39-musllinux_i686
51
46
- spec : cp310-musllinux_i686
52
47
- spec : cp311-musllinux_i686
53
- - spec : cp36-manylinux_ppc64le
48
+ # - spec: cp312-musllinux_i686 # busted as of 9/22/23
49
+
50
+ - spec : cp38-manylinux_aarch64
51
+ foreign_arch : true
52
+ test_args : ' {project}/c'
53
+ - spec : cp39-manylinux_aarch64
54
+ foreign_arch : true
55
+ test_args : ' {project}/c'
56
+ - spec : cp310-manylinux_aarch64
57
+ foreign_arch : true
58
+ test_args : ' {project}/c'
59
+ - spec : cp311-manylinux_aarch64
54
60
foreign_arch : true
55
61
test_args : ' {project}/c'
56
- - spec : cp37-manylinux_ppc64le
62
+ - spec : cp312-manylinux_aarch64
57
63
foreign_arch : true
58
64
test_args : ' {project}/c'
65
+
59
66
- spec : cp38-manylinux_ppc64le
60
67
foreign_arch : true
61
68
test_args : ' {project}/c'
68
75
- spec : cp311-manylinux_ppc64le
69
76
foreign_arch : true
70
77
test_args : ' {project}/c'
78
+ - spec : cp312-manylinux_ppc64le
79
+ foreign_arch : true
80
+ test_args : ' {project}/c'
81
+
82
+ - spec : cp38-manylinux_s390x
83
+ foreign_arch : true
84
+ test_args : ' {project}/c'
85
+ - spec : cp39-manylinux_s390x
86
+ foreign_arch : true
87
+ test_args : ' {project}/c'
88
+ - spec : cp310-manylinux_s390x
89
+ foreign_arch : true
90
+ test_args : ' {project}/c'
91
+ - spec : cp311-manylinux_s390x
92
+ foreign_arch : true
93
+ test_args : ' {project}/c'
94
+ - spec : cp312-manylinux_s390x
95
+ foreign_arch : true
96
+ test_args : ' {project}/c'
97
+
71
98
steps :
72
99
- name : clone repo
73
- uses : actions/checkout@v2
100
+ uses : actions/checkout@v4
74
101
75
102
- name : configure docker foreign arch support
76
103
uses : docker/setup-qemu-action@v1
94
121
CIBW_MANYLINUX_X86_64_IMAGE : ${{ matrix.manylinux_img || '' }}
95
122
CIBW_MANYLINUX_I686_IMAGE : ${{ matrix.manylinux_img || '' }}
96
123
CIBW_PRERELEASE_PYTHONS : ' True'
97
- CIBW_TEST_REQUIRES : pytest
124
+ CIBW_TEST_REQUIRES : pytest setuptools # 3.12+ no longer includes distutils, just always ensure setuptools is present
98
125
CIBW_TEST_COMMAND : PYTHONUNBUFFERED=1 python -m pytest ${{ matrix.test_args || '{project}' }} # default to test all
99
126
run : |
100
127
python -m pip install --upgrade "${{ matrix.cibw_version || 'cibuildwheel' }}"
@@ -104,7 +131,7 @@ jobs:
104
131
105
132
106
133
- name : upload artifacts
107
- uses : actions/upload-artifact@v2
134
+ uses : actions/upload-artifact@v3
108
135
with :
109
136
path : dist
110
137
if-no-files-found : error
@@ -114,21 +141,19 @@ jobs:
114
141
defaults :
115
142
run :
116
143
shell : ${{ matrix.run_wrapper || 'bash --noprofile --norc -eo pipefail {0}' }}
117
- runs-on : ${{ matrix.runs_on || 'macos-10.15 ' }}
144
+ runs-on : ${{ matrix.runs_on || 'macos-11 ' }}
118
145
strategy :
146
+ fail-fast : false
119
147
matrix :
120
148
include :
121
149
# build for x86_64 under the default hosted macOS 10.x x86_64 runner
122
- - spec : cp27-macosx_x86_64
123
- cibw_version : cibuildwheel<2.0 # py2.7 is not supported on CIBW 2.0+
124
- - spec : cp36-macosx_x86_64
125
- - spec : cp37-macosx_x86_64
126
150
- spec : cp38-macosx_x86_64
127
151
- spec : cp39-macosx_x86_64
128
152
- spec : cp310-macosx_x86_64
129
153
- spec : cp311-macosx_x86_64
130
- # build for arm64 under a hacked macOS 12 self-hosted x86_64-on-arm64 runner until arm64 is fully supported
131
- # FIXME: ? cp38-macosx_arm64 requires special handling and fails some test_zdist tests under cibw 2.1.2, skip it (so Apple's XCode python3 won't have a wheel)
154
+ - spec : cp312-macosx_x86_64
155
+ # # build for arm64 under a hacked macOS 12 self-hosted x86_64-on-arm64 runner until arm64 is fully supported
156
+ # # FIXME: ? cp38-macosx_arm64 requires special handling and fails some test_zdist tests under cibw 2.1.2, skip it (so Apple's XCode python3 won't have a wheel)
132
157
- spec : cp39-macosx_arm64
133
158
deployment_target : ' 11.0'
134
159
runs_on : [self-hosted, macOS]
@@ -147,9 +172,16 @@ jobs:
147
172
run_wrapper : arch -arm64 bash --noprofile --norc -eo pipefail {0}
148
173
sdkroot : macosx11.3
149
174
175
+ - spec : cp312-macosx_arm64
176
+ deployment_target : ' 11.0'
177
+ runs_on : [self-hosted, macOS]
178
+ run_wrapper : arch -arm64 bash --noprofile --norc -eo pipefail {0}
179
+ sdkroot : macosx11.3
180
+
150
181
151
182
steps :
152
183
- name : clone repo
184
+ # need to use v2 until we can upgrade the runners on our private Apple Silicon build infra to one that supports node20
153
185
uses : actions/checkout@v2
154
186
155
187
- name : build wheel prereqs
@@ -161,7 +193,7 @@ jobs:
161
193
env :
162
194
CIBW_BUILD : ${{ matrix.spec }}
163
195
CIBW_PRERELEASE_PYTHONS : ' True'
164
- CIBW_TEST_REQUIRES : pytest
196
+ CIBW_TEST_REQUIRES : pytest setuptools
165
197
CIBW_TEST_COMMAND : pip install pip --upgrade; cd {project}; PYTHONUNBUFFERED=1 pytest
166
198
run : |
167
199
if [[ -n "${{ matrix.deployment_target || '' }}" ]]
@@ -177,6 +209,7 @@ jobs:
177
209
/usr/bin/python3 -m cibuildwheel --output-dir dist
178
210
179
211
- name : upload artifacts
212
+ # need to use v2 until we can upgrade the runners on our private Apple Silicon build infra to one that supports node20
180
213
uses : actions/upload-artifact@v2
181
214
with :
182
215
path : dist
@@ -185,56 +218,39 @@ jobs:
185
218
windows :
186
219
runs-on : windows-2019
187
220
strategy :
221
+ fail-fast : false
188
222
matrix :
189
223
include :
190
- - spec : cp27-win_amd64
191
- cibw_version : cibuildwheel==1.10 # last release with proper py2.7 Windows support
192
- - spec : cp36-win_amd64
193
- - spec : cp37-win_amd64
194
224
- spec : cp38-win_amd64
195
225
- spec : cp39-win_amd64
196
226
- spec : cp310-win_amd64
197
227
- spec : cp311-win_amd64
198
- - spec : cp27-win32
199
- cibw_version : cibuildwheel==1.10 # last release with proper py2.7 Windows support
200
- - spec : cp36-win32
201
- - spec : cp37-win32
228
+ - spec : cp312-win_amd64
202
229
- spec : cp38-win32
203
230
- spec : cp39-win32
204
231
- spec : cp310-win32
205
232
- spec : cp311-win32
233
+ - spec : cp312-win32
234
+
206
235
steps :
207
236
- name : clone repo
208
- uses : actions/checkout@v2
209
-
210
- # HACK: MS killed this SDK support package and removed downloads, as did chocolatey, install from a private archive
211
- - name : install Windows Python 2.7 SDK
212
- run : |
213
- $msiPath = Join-Path ([IO.Path]::GetTempPath()) 'VCForPython27.msi'
214
- [Net.WebClient]::new().DownloadFile('https://raw.githubusercontent.com/nitzmahone/VCPython27/master/VCForPython27.msi', $msiPath)
215
- Start-Process -FilePath msiexec.exe -Wait -ArgumentList @(
216
- '/i',
217
- $msiPath,
218
- '/qn',
219
- '/norestart'
220
- )
221
- shell : powershell
222
- if : ${{ contains(matrix.spec, 'cp27') }}
223
-
237
+ uses : actions/checkout@v4
224
238
- name : build/test wheels
225
239
env :
226
240
CIBW_BUILD : ${{ matrix.spec }}
227
241
CIBW_PRERELEASE_PYTHONS : ' True'
242
+ CIBW_TEST_REQUIRES : pytest setuptools
243
+ CIBW_TEST_COMMAND : ' python -m pytest {project}/c'
244
+ # FIXME: /testing takes ~45min on Windows and has some failures...
245
+ # CIBW_TEST_COMMAND='python -m pytest {project}/c {project}/testing'
228
246
run : |
229
247
python -m pip install --upgrade pip
230
248
pip install "${{ matrix.cibw_version || 'cibuildwheel'}}"
231
- # FIXME: /testing takes ~45min on Windows and has some failures...
232
- # CIBW_TEST_REQUIRES=pytest CIBW_TEST_COMMAND='python -m pytest {project}/c {project}/testing' cibuildwheel --output-dir dist .
233
- CIBW_TEST_REQUIRES=pytest CIBW_TEST_COMMAND='python -m pytest {project}/c' cibuildwheel --output-dir dist .
249
+ python -m cibuildwheel --output-dir dist .
234
250
shell : bash
235
251
236
252
- name : upload artifacts
237
- uses : actions/upload-artifact@v2
253
+ uses : actions/upload-artifact@v3
238
254
with :
239
255
path : dist
240
256
if-no-files-found : error
0 commit comments