@@ -365,74 +365,76 @@ jobs:
365
365
path : dist
366
366
367
367
build :
368
- name : build on ${{ matrix.platform || matrix. os }} (${{ matrix.target }} - ${{ matrix.manylinux || 'auto' }})
368
+ name : build on ${{ matrix.os }} (${{ matrix.target }} - ${{ matrix.manylinux || 'auto' }})
369
369
# only run on push to main and on release
370
370
if : startsWith(github.ref, 'refs/tags/') || github.ref == 'refs/heads/main' || contains(github.event.pull_request.labels.*.name, 'Full Build')
371
371
strategy :
372
372
fail-fast : false
373
373
matrix :
374
- os : [ubuntu , macos, windows]
375
- target : [x86_64, aarch64]
374
+ os : [linux , macos, windows]
375
+ target : [] # require all targets to be specified
376
376
manylinux : [auto]
377
377
include :
378
- - os : ubuntu
379
- platform : linux
380
- - os : windows
381
- ls : dir
382
- interpreter : 3.7 3.8 3.9 3.10 3.11 3.12 pypy3.8 pypy3.9 pypy3.10
378
+ # standard runners on macos x86_64 (which we don't PGO optimize)
379
+ - os : linux
380
+ runs-on : ubuntu-latest
383
381
- os : windows
384
382
ls : dir
385
- target : i686
386
- python-architecture : x86
387
- interpreter : 3.7 3.8 3.9 3.10 3.11 3.12
388
- - os : windows
389
- ls : dir
390
- target : aarch64
391
- interpreter : 3.11 3.12
383
+ runs-on : windows-latest
392
384
- os : macos
393
- target : aarch64
394
- interpreter : 3.7 3.8 3.9 pypy3.8 pypy3.9 pypy3.10
395
- - os : ubuntu
396
- platform : linux
385
+ runs-on : macos-latest
386
+
387
+ # manylinux for various platforms, plus x86_64 pypy
388
+ - os : linux
397
389
target : i686
398
- - os : ubuntu
399
- platform : linux
390
+ - os : linux
400
391
target : aarch64
401
-
402
- - os : ubuntu
403
- platform : linux
392
+ - os : linux
404
393
target : armv7
405
394
interpreter : 3.7 3.8 3.9 3.10 3.11 3.12
395
+ - os : linux
396
+ target : ppc64le
397
+ interpreter : 3.7 3.8 3.9 3.10 3.11 3.12
398
+ - os : linux
399
+ target : s390x
400
+ interpreter : 3.7 3.8 3.9 3.10 3.11 3.12
401
+ - os : linux
402
+ target : x86_64
403
+ interpreter : pypy3.7 pypy3.8 pypy3.9 pypy3.10
404
+
406
405
# musllinux
407
- - os : ubuntu
408
- platform : linux
406
+ - os : linux
409
407
target : x86_64
410
408
manylinux : musllinux_1_1
411
- - os : ubuntu
412
- platform : linux
409
+ - os : linux
413
410
target : aarch64
414
411
manylinux : musllinux_1_1
415
- - os : ubuntu
416
- platform : linux
417
- target : ppc64le
418
- interpreter : 3.7 3.8 3.9 3.10 3.11 3.12
419
- - os : ubuntu
420
- platform : linux
421
- target : s390x
422
- interpreter : 3.7 3.8 3.9 3.10 3.11 3.12
423
- exclude :
424
- # Optimized PGO builds for x86_64 manylinux and windows follow a different matrix,
425
- # maybe in future maturin-action can support this automatically
426
- - os : ubuntu
412
+
413
+ # macos;
414
+ # all versions x86_64
415
+ # arm pypy and older pythons which can't be run on the arm hardware for PGO
416
+ - os : macos
427
417
target : x86_64
428
- manylinux : auto
418
+ - os : macos
419
+ target : aarch64
420
+ interpreter : 3.7 3.8 3.9 pypy3.8 pypy3.9 pypy3.10
421
+
422
+ # windows;
423
+ # x86_64 pypy builds are not PGO optimized
424
+ # i686 not supported by pypy
425
+ # aarch64 only 3.11 and up, also not PGO optimized
429
426
- os : windows
430
427
target : x86_64
431
- # Windows on arm64 only supports Python 3.11+
428
+ interpreter : pypy3.8 pypy3.9 pypy3.10
429
+ - os : windows
430
+ target : i686
431
+ python-architecture : x86
432
+ interpreter : 3.7 3.8 3.9 3.10 3.11 3.12
432
433
- os : windows
433
434
target : aarch64
435
+ interpreter : 3.11 3.12
434
436
435
- runs-on : ${{ matrix.os }}-latest
437
+ runs-on : ${{ (matrix.os == 'linux' && 'ubuntu') || matrix.os }}-latest
436
438
steps :
437
439
- uses : actions/checkout@v4
438
440
@@ -473,20 +475,27 @@ jobs:
473
475
strategy :
474
476
fail-fast : false
475
477
matrix :
476
- os : [ubuntu-latest , windows-latest , macos-latest-xlarge ]
478
+ os : [linux , windows, macos]
477
479
interpreter : ['3.7', '3.8', '3.9', '3.10', '3.11', '3.12']
478
480
include :
479
- - os : windows-latest
481
+ # standard runners with override for macos arm
482
+ - os : linux
483
+ runs-on : ubuntu-latest
484
+ - os : windows
480
485
ls : dir
486
+ runs-on : windows-latest
487
+ - os : macos
488
+ runs-on : macos-latest-xlarge
481
489
exclude :
482
- - os : macos-latest-xlarge
490
+ # macos arm only supported from 3.10 and up
491
+ - os : macos
483
492
interpreter : ' 3.7'
484
- - os : macos-latest-xlarge
493
+ - os : macos
485
494
interpreter : ' 3.8'
486
- - os : macos-latest-xlarge
495
+ - os : macos
487
496
interpreter : ' 3.9'
488
497
489
- runs-on : ${{ matrix.os }}
498
+ runs-on : ${{ matrix.runs-on }}
490
499
steps :
491
500
- uses : actions/checkout@v4
492
501
0 commit comments