@@ -365,74 +365,73 @@ jobs:
365365 path : dist
366366
367367 build :
368- name : build on ${{ matrix.platform || matrix. os }} (${{ matrix.target }} - ${{ matrix.manylinux || 'auto' }})
368+ name : build on ${{ matrix.os }} (${{ matrix.target }} - ${{ matrix.interpreter || 'all' }}${{ matrix.os == 'linux' && format(' - {0}', matrix.manylinux == ' auto' && 'manylinux' || matrix.manylinux) || ' ' }})
369369 # only run on push to main and on release
370370 if : startsWith(github.ref, 'refs/tags/') || github.ref == 'refs/heads/main' || contains(github.event.pull_request.labels.*.name, 'Full Build')
371371 strategy :
372372 fail-fast : false
373373 matrix :
374- os : [ubuntu , macos, windows]
374+ os : [linux , macos, windows]
375375 target : [x86_64, aarch64]
376376 manylinux : [auto]
377377 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
383- - os : windows
384- 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
392- - 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
378+ # manylinux for various platforms, plus x86_64 pypy
379+ - os : linux
380+ manylinux : auto
397381 target : i686
398- - os : ubuntu
399- platform : linux
382+ - os : linux
383+ manylinux : auto
400384 target : aarch64
401-
402- - os : ubuntu
403- platform : linux
385+ - os : linux
386+ manylinux : auto
404387 target : armv7
405388 interpreter : 3.7 3.8 3.9 3.10 3.11 3.12
406- # musllinux
407- - os : ubuntu
408- platform : linux
409- target : x86_64
410- manylinux : musllinux_1_1
411- - os : ubuntu
412- platform : linux
413- target : aarch64
414- manylinux : musllinux_1_1
415- - os : ubuntu
416- platform : linux
389+ - os : linux
390+ manylinux : auto
417391 target : ppc64le
418392 interpreter : 3.7 3.8 3.9 3.10 3.11 3.12
419- - os : ubuntu
420- platform : linux
393+ - os : linux
394+ manylinux : auto
421395 target : s390x
422396 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
427- target : x86_64
397+ - os : linux
428398 manylinux : auto
399+ target : x86_64
400+ interpreter : pypy3.7 pypy3.8 pypy3.9 pypy3.10
401+
402+ # musllinux
403+ - os : linux
404+ manylinux : musllinux_1_1
405+ target : x86_64
406+ - os : linux
407+ manylinux : musllinux_1_1
408+ target : aarch64
409+
410+ # macos;
411+ # all versions x86_64
412+ # arm pypy and older pythons which can't be run on the arm hardware for PGO
413+ - os : macos
414+ target : x86_64
415+ - os : macos
416+ target : aarch64
417+ interpreter : 3.7 3.8 3.9 pypy3.8 pypy3.9 pypy3.10
418+
419+ # windows;
420+ # x86_64 pypy builds are not PGO optimized
421+ # i686 not supported by pypy
422+ # aarch64 only 3.11 and up, also not PGO optimized
429423 - os : windows
430424 target : x86_64
431- # Windows on arm64 only supports Python 3.11+
425+ interpreter : pypy3.8 pypy3.9 pypy3.10
426+ - os : windows
427+ target : i686
428+ python-architecture : x86
429+ interpreter : 3.7 3.8 3.9 3.10 3.11 3.12
432430 - os : windows
433431 target : aarch64
432+ interpreter : 3.11 3.12
434433
435- runs-on : ${{ matrix.os }}-latest
434+ runs-on : ${{ (matrix.os == 'linux' && 'ubuntu') || matrix.os }}-latest
436435 steps :
437436 - uses : actions/checkout@v4
438437
@@ -451,13 +450,12 @@ jobs:
451450 uses : PyO3/maturin-action@v1
452451 with :
453452 target : ${{ matrix.target }}
454- manylinux : ${{ matrix.manylinux || 'auto' }}
455- container : ${{ matrix.container }}
456- args : --release --out dist --interpreter ${{ matrix.interpreter || '3.7 3.8 3.9 3.10 3.11 3.12 pypy3.7 pypy3.8 pypy3.9 pypy3.10' }} ${{ matrix.extra-build-args }}
453+ manylinux : ${{ matrix.manylinux == 'manylinux' && 'auto' || matrix.manylinux }}
454+ args : --release --out dist --interpreter ${{ matrix.interpreter || '3.7 3.8 3.9 3.10 3.11 3.12 pypy3.7 pypy3.8 pypy3.9 pypy3.10' }}
457455 rust-toolchain : stable
458456 docker-options : -e CI
459457
460- - run : ${{ matrix.ls || 'ls -lh' }} dist/
458+ - run : ${{ ( matrix.os == 'windows' && 'dir') || 'ls -lh' }} dist/
461459
462460 - run : twine check --strict dist/*
463461
@@ -473,20 +471,27 @@ jobs:
473471 strategy :
474472 fail-fast : false
475473 matrix :
476- os : [ubuntu-latest , windows-latest , macos-latest-xlarge ]
474+ os : [linux , windows, macos]
477475 interpreter : ['3.7', '3.8', '3.9', '3.10', '3.11', '3.12']
478476 include :
479- - os : windows-latest
477+ # standard runners with override for macos arm
478+ - os : linux
479+ runs-on : ubuntu-latest
480+ - os : windows
480481 ls : dir
482+ runs-on : windows-latest
483+ - os : macos
484+ runs-on : macos-latest-xlarge
481485 exclude :
482- - os : macos-latest-xlarge
486+ # macos arm only supported from 3.10 and up
487+ - os : macos
483488 interpreter : ' 3.7'
484- - os : macos-latest-xlarge
489+ - os : macos
485490 interpreter : ' 3.8'
486- - os : macos-latest-xlarge
491+ - os : macos
487492 interpreter : ' 3.9'
488493
489- runs-on : ${{ matrix.os }}
494+ runs-on : ${{ matrix.runs-on }}
490495 steps :
491496 - uses : actions/checkout@v4
492497
0 commit comments