Skip to content

Commit a35b182

Browse files
authored
restore pypy builds for x86_64 (#1072)
1 parent baed943 commit a35b182

File tree

1 file changed

+61
-56
lines changed

1 file changed

+61
-56
lines changed

.github/workflows/ci.yml

Lines changed: 61 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)