@@ -122,88 +122,154 @@ jobs:
122
122
strategy :
123
123
fail-fast : false
124
124
matrix :
125
- triple :
126
- - ' aarch64-unknown-linux-gnu'
127
- - ' armv7-unknown-linux-gnueabi'
128
- - ' armv7-unknown-linux-gnueabihf'
129
- - ' i686-unknown-linux-gnu'
130
- - ' mips-unknown-linux-gnu'
131
- - ' mipsel-unknown-linux-gnu'
132
- - ' s390x-unknown-linux-gnu'
133
- - ' x86_64-unknown-linux-gnu'
134
- - ' x86_64-unknown-linux-musl'
135
- py :
136
- - ' cpython-3.8'
137
- - ' cpython-3.9'
138
- - ' cpython-3.10'
139
- optimizations :
140
- - ' debug'
141
- - ' noopt'
142
- - ' lto'
143
- - ' pgo'
144
- - ' pgo+lto'
145
- exclude :
146
- # Only CPython 3.9 supported for many cross build targets.
147
- - triple : ' aarch64-unknown-linux-gnu'
148
- py : ' cpython-3.8'
149
- - triple : ' aarch64-unknown-linux-gnu'
150
- py : ' cpython-3.10'
151
- - triple : ' armv7-unknown-linux-gnueabi'
152
- py : ' cpython-3.8'
153
- - triple : ' armv7-unknown-linux-gnueabi'
154
- py : ' cpython-3.10'
155
- - triple : ' armv7-unknown-linux-gnueabihf'
156
- py : ' cpython-3.8'
157
- - triple : ' armv7-unknown-linux-gnueabihf'
158
- py : ' cpython-3.10'
159
- - triple : ' mips-unknown-linux-gnu'
125
+ build :
126
+ # Cross-compiles can't do PGO and require Python 3.9.
127
+ - target_triple : ' aarch64-unknown-linux-gnu'
128
+ py : ' cpython-3.9'
129
+ optimizations : ' debug'
130
+ - target_triple : ' aarch64-unknown-linux-gnu'
131
+ py : ' cpython-3.9'
132
+ optimizations : ' noopt'
133
+ - target_triple : ' aarch64-unknown-linux-gnu'
134
+ py : ' cpython-3.9'
135
+ optimizations : ' lto'
136
+
137
+ # Cross-compiles can't do PGO and require Python 3.9.
138
+ - target_triple : ' armv7-unknown-linux-gnueabi'
139
+ py : ' cpython-3.9'
140
+ optimizations : ' debug'
141
+ - target_triple : ' armv7-unknown-linux-gnueabi'
142
+ py : ' cpython-3.9'
143
+ optimizations : ' noopt'
144
+ - target_triple : ' armv7-unknown-linux-gnueabi'
145
+ py : ' cpython-3.9'
146
+ optimizations : ' lto'
147
+
148
+ # Cross-compiles can't do PGO and require Python 3.9.
149
+ - target_triple : ' armv7-unknown-linux-gnueabihf'
150
+ py : ' cpython-3.9'
151
+ optimizations : ' debug'
152
+ - target_triple : ' armv7-unknown-linux-gnueabihf'
153
+ py : ' cpython-3.9'
154
+ optimizations : ' noopt'
155
+ - target_triple : ' armv7-unknown-linux-gnueabihf'
156
+ py : ' cpython-3.9'
157
+ optimizations : ' lto'
158
+
159
+ # We don't publish noopt builds when PGO is available.
160
+ - target_triple : ' i686-unknown-linux-gnu'
160
161
py : ' cpython-3.8'
161
- - triple : ' mips-unknown-linux-gnu'
162
- py : ' cpython-3.10'
163
- - triple : ' mipsel-unknown-linux-gnu'
162
+ optimizations : ' debug'
163
+ - target_triple : ' i686-unknown-linux-gnu'
164
164
py : ' cpython-3.8'
165
- - triple : ' mipsel-unknown-linux-gnu'
166
- py : ' cpython-3.10'
167
- - triple : ' s390x-unknown-linux-gnu'
165
+ optimizations : ' lto'
166
+ - target_triple : ' i686-unknown-linux-gnu'
168
167
py : ' cpython-3.8'
169
- - triple : ' s390x-unknown-linux-gnu'
170
- py : ' cpython-3.10'
171
- # We don't publish noopt builds for GNU Linux when PGO is available.
172
- - triple : ' i686-unknown-linux-gnu'
173
- optimizations : ' noopt'
174
- - triple : ' x86_64-unknown-linux-gnu'
175
- optimizations : ' noopt'
176
- # PGO doesn't work with musl libc.
177
- - triple : ' x86_64-unknown-linux-musl'
178
168
optimizations : ' pgo'
179
- - triple : ' x86_64-unknown-linux-musl'
180
- optimizations : ' pgo+lto'
181
- # PGO doesn't work with cross builds.
182
- - triple : ' aarch64-unknown-linux-gnu'
183
- optimizations : ' pgo'
184
- - triple : ' aarch64-unknown-linux-gnu'
185
- optimizations : ' pgo+lto'
186
- - triple : ' armv7-unknown-linux-gnueabi'
187
- optimizations : ' pgo'
188
- - triple : ' armv7-unknown-linux-gnueabi'
169
+ - target_triple : ' i686-unknown-linux-gnu'
170
+ py : ' cpython-3.8'
189
171
optimizations : ' pgo+lto'
190
- - triple : ' armv7-unknown-linux-gnueabihf'
172
+ - target_triple : ' i686-unknown-linux-gnu'
173
+ py : ' cpython-3.9'
174
+ optimizations : ' debug'
175
+ - target_triple : ' i686-unknown-linux-gnu'
176
+ py : ' cpython-3.9'
177
+ optimizations : ' lto'
178
+ - target_triple : ' i686-unknown-linux-gnu'
179
+ py : ' cpython-3.9'
191
180
optimizations : ' pgo'
192
- - triple : ' armv7-unknown-linux-gnueabihf'
181
+ - target_triple : ' i686-unknown-linux-gnu'
182
+ py : ' cpython-3.9'
193
183
optimizations : ' pgo+lto'
194
- - triple : ' mips-unknown-linux-gnu'
184
+
185
+ # Cross-compiles can't do PGO and require Python 3.9.
186
+ - target_triple : ' mips-unknown-linux-gnu'
187
+ py : ' cpython-3.9'
188
+ optimizations : ' debug'
189
+ - target_triple : ' mips-unknown-linux-gnu'
190
+ py : ' cpython-3.9'
191
+ optimizations : ' noopt'
192
+ - target_triple : ' mips-unknown-linux-gnu'
193
+ py : ' cpython-3.9'
194
+ optimizations : ' lto'
195
+
196
+ # Cross-compiles can't do PGO and require Python 3.9.
197
+ - target_triple : ' mipsel-unknown-linux-gnu'
198
+ py : ' cpython-3.9'
199
+ optimizations : ' debug'
200
+ - target_triple : ' mipsel-unknown-linux-gnu'
201
+ py : ' cpython-3.9'
202
+ optimizations : ' noopt'
203
+ - target_triple : ' mipsel-unknown-linux-gnu'
204
+ py : ' cpython-3.9'
205
+ optimizations : ' lto'
206
+
207
+ # Cross-compiles can't do PGO and require Python 3.9.
208
+ - target_triple : ' s390x-unknown-linux-gnu'
209
+ py : ' cpython-3.9'
210
+ optimizations : ' debug'
211
+ - target_triple : ' s390x-unknown-linux-gnu'
212
+ py : ' cpython-3.9'
213
+ optimizations : ' noopt'
214
+ - target_triple : ' s390x-unknown-linux-gnu'
215
+ py : ' cpython-3.9'
216
+ optimizations : ' lto'
217
+
218
+ # We don't publish noopt builds when PGO is available.
219
+ - target_triple : ' x86_64-unknown-linux-gnu'
220
+ py : ' cpython-3.8'
221
+ optimizations : ' debug'
222
+ - target_triple : ' x86_64-unknown-linux-gnu'
223
+ py : ' cpython-3.8'
224
+ optimizations : ' lto'
225
+ - target_triple : ' x86_64-unknown-linux-gnu'
226
+ py : ' cpython-3.8'
195
227
optimizations : ' pgo'
196
- - triple : ' mips-unknown-linux-gnu'
228
+ - target_triple : ' x86_64-unknown-linux-gnu'
229
+ py : ' cpython-3.8'
197
230
optimizations : ' pgo+lto'
198
- - triple : ' mipsel-unknown-linux-gnu'
231
+ - target_triple : ' x86_64-unknown-linux-gnu'
232
+
233
+ py : ' cpython-3.9'
234
+ optimizations : ' debug'
235
+ - target_triple : ' x86_64-unknown-linux-gnu'
236
+ py : ' cpython-3.9'
237
+ optimizations : ' lto'
238
+ - target_triple : ' x86_64-unknown-linux-gnu'
239
+ py : ' cpython-3.9'
199
240
optimizations : ' pgo'
200
- - triple : ' mipsel-unknown-linux-gnu'
241
+ - target_triple : ' x86_64-unknown-linux-gnu'
242
+ py : ' cpython-3.9'
201
243
optimizations : ' pgo+lto'
202
- - triple : ' s390x-unknown-linux-gnu'
203
- optimizations : ' pgo'
204
- - triple : ' s390x-unknown-linux-gnu'
244
+
245
+ # Python 3.10 is just spot coverage for now.
246
+ - target_triple : ' x86_64-unknown-linux-gnu'
247
+ py : ' cpython-3.10'
248
+ optimizations : ' debug'
249
+ - target_triple : ' x86_64-unknown-linux-gnu'
250
+ py : ' cpython-3.10'
205
251
optimizations : ' pgo+lto'
206
252
253
+ # musl doesn't support PGO.
254
+ - target_triple : ' x86_64-unknown-linux-musl'
255
+ py : ' cpython-3.8'
256
+ optimizations : ' debug'
257
+ - target_triple : ' x86_64-unknown-linux-musl'
258
+ py : ' cpython-3.8'
259
+ optimizations : ' noopt'
260
+ - target_triple : ' x86_64-unknown-linux-musl'
261
+ py : ' cpython-3.8'
262
+ optimizations : ' lto'
263
+ - target_triple : ' x86_64-unknown-linux-musl'
264
+
265
+ py : ' cpython-3.9'
266
+ optimizations : ' debug'
267
+ - target_triple : ' x86_64-unknown-linux-musl'
268
+ py : ' cpython-3.9'
269
+ optimizations : ' noopt'
270
+ - target_triple : ' x86_64-unknown-linux-musl'
271
+ py : ' cpython-3.9'
272
+ optimizations : ' lto'
207
273
needs :
208
274
- pythonbuild
209
275
- toolchain
@@ -232,13 +298,13 @@ jobs:
232
298
233
299
- name : Build
234
300
run : |
235
- if [ "${{ matrix.triple }}" = "x86_64-unknown-linux-musl" ]; then
301
+ if [ "${{ matrix.build.target_triple }}" = "x86_64-unknown-linux-musl" ]; then
236
302
EXTRA_ARGS=--libressl
237
303
else
238
304
EXTRA_ARGS=
239
305
fi
240
306
241
- ./build-linux.py --skip-toolchain --target-triple ${{ matrix.triple }} --python ${{ matrix.py }} --optimizations ${{ matrix.optimizations }} ${EXTRA_ARGS}
307
+ ./build-linux.py --skip-toolchain --target-triple ${{ matrix.build.target_triple }} --python ${{ matrix.build. py }} --optimizations ${{ matrix.build .optimizations }} ${EXTRA_ARGS}
242
308
243
309
- name : Validate Distribution
244
310
run : |
@@ -248,5 +314,5 @@ jobs:
248
314
- name : Upload Distribution
249
315
uses : actions/upload-artifact@v2
250
316
with :
251
- name : ${{ matrix.py }}-${{ matrix.triple }}
317
+ name : ${{ matrix.build. py }}-${{ matrix.build.target_triple }}
252
318
path : dist/*
0 commit comments