Skip to content

Commit

Permalink
chore: Update CI configuration to include Python interpreter versions…
Browse files Browse the repository at this point in the history
… 3.8 to 3.13
  • Loading branch information
carlos-rian-qd committed Aug 24, 2024
1 parent 7aba287 commit c7f83e4
Showing 1 changed file with 63 additions and 80 deletions.
143 changes: 63 additions & 80 deletions .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -94,84 +94,67 @@ jobs:
target: [x86_64, aarch64]
manylinux: [auto]
include:
# windows;
# x86_64 pypy builds are not PGO optimized
# i686 not supported by pypy
# aarch64 only 3.11 and up, also not PGO optimized
- os: windows
target: i686
python-architecture: x86
interpreter: 3.8 3.9 3.10 3.11 3.12 3.13
# FIXME aarch64 builds broken, see https://github.com/PyO3/maturin/issues/2110
# - os: windows
# target: aarch64
# interpreter: 3.11 3.12 3.13

# depends from libz, not working on windows correctly.
#- os: windows
# ls: dir
# target: aarch64
# interpreter: 3.11 3.12
- os: macos
target: x86_64
interpreter: 3.8 3.9 3.10 3.11 3.12 3.13

- os: macos
target: aarch64
interpreter: 3.8 3.9 3.10 3.11 3.12 3.13


# manylinux
- os: ubuntu
platform: linux

- os: ubuntu
platform: linux
target: i686

- os: ubuntu
platform: linux
target: aarch64

- os: ubuntu
platform: linux
target: armv7
interpreter: 3.8 3.9 3.10 3.11 3.12 3.13

- os: ubuntu
platform: linux
target: ppc64le
interpreter: 3.8 3.9 3.10 3.11 3.12 3.13

- os: ubuntu
platform: linux
target: s390x
interpreter: 3.8 3.9 3.10 3.11 3.12 3.13

# musllinux
- os: ubuntu
platform: linux
target: x86_64
manylinux: musllinux_1_1

- os: ubuntu
platform: linux
target: aarch64
manylinux: musllinux_1_1


# manylinux for various platforms, plus x86_64 pypy
- os: linux
manylinux: auto
target: i686
- os: linux
manylinux: auto
target: aarch64
- os: linux
manylinux: auto
target: armv7
interpreter: 3.8 3.9 3.10 3.11 3.12 3.13
- os: linux
manylinux: auto
target: ppc64le
interpreter: 3.8 3.9 3.10 3.11 3.12 3.13
- os: linux
manylinux: auto
target: s390x
interpreter: 3.8 3.9 3.10 3.11 3.12 3.13
- os: linux
manylinux: auto
target: x86_64
interpreter: pypy3.9 pypy3.10

# musllinux
- os: linux
manylinux: musllinux_1_1
target: x86_64
- os: linux
manylinux: musllinux_1_1
target: aarch64

# macos;
# all versions x86_64
# arm pypy and older pythons which can't be run on the arm hardware for PGO
- os: macos
target: x86_64
- os: macos
target: aarch64
interpreter: 3.8 3.9 pypy3.9 pypy3.10

# windows;
# x86_64 pypy builds are not PGO optimized
# i686 not supported by pypy
# aarch64 only 3.11 and up, also not PGO optimized
- os: windows
target: x86_64
interpreter: pypy3.9 pypy3.10
- os: windows
target: i686
python-architecture: x86
interpreter: 3.8 3.9 3.10 3.11 3.12 3.13
# FIXME aarch64 builds broken, see https://github.com/PyO3/maturin/issues/2110
# - os: windows
# target: aarch64
# interpreter: 3.11 3.12 3.13

exclude:
# Optimized PGO builds for x86_64 manylinux and windows follow a different matrix,
# maybe in future maturin-action can support this automatically
- os: ubuntu
target: x86_64
manylinux: auto
- os: windows
target: x86_64
# Windows on arm64 only supports Python 3.11+
- os: windows
target: aarch64
# See above; disabled for now.
- os: windows
target: aarch64

runs-on: ${{ matrix.os }}-latest
steps:
Expand Down Expand Up @@ -199,17 +182,17 @@ jobs:
uses: PyO3/maturin-action@v1
with:
target: ${{ matrix.target }}
manylinux: ${{ matrix.manylinux || 'auto' }}
manylinux: ${{ matrix.manylinux }}
args: >
--release
--out dist
--interpreter ${{ matrix.interpreter || '3.8 3.9 3.10 3.11 3.12 3.13' }}
--interpreter ${{ matrix.interpreter || '3.8 3.9 3.10 3.11 3.12 3.13 pypy3.9 pypy3.10' }}
rust-toolchain: stable
# sccache is not supported on Windows
sccache: ${{ matrix.os != 'windows' }}
sccache: true
docker-options: -e CI

- run: ${{ matrix.ls || 'ls -lh' }} dist/
- run: ${{ (matrix.os == 'windows' && 'dir') || 'ls -lh' }} dist/

- run: twine check --strict dist/*

Expand Down

0 comments on commit c7f83e4

Please sign in to comment.