Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
93 changes: 39 additions & 54 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ jobs:
matrix:
rust-version: [stable]
runs-on: [ubuntu, macos]
python-version: ["3.13"]
python-version: [""]
include:
- rust-version: ${{ needs.resolve.outputs.MSRV }}
runs-on: ubuntu
Expand All @@ -55,7 +55,7 @@ jobs:
- name: set up python
uses: actions/setup-python@v6
with:
python-version: ${{ matrix.python-version }}
python-version: ${{ matrix.python-version || '3.13' }}

- uses: dtolnay/rust-toolchain@master
with:
Expand Down Expand Up @@ -256,34 +256,34 @@ jobs:
strategy:
fail-fast: false
matrix:
os: [linux] # windows and macos builds added manually
target: [x86_64, aarch64]
os: [linux, windows] # windows and macos builds added manually
target: [i686]
manylinux: [auto]
include:
# manylinux for various platforms
- os: linux
manylinux: auto
target: x86_64
interpreter: graalpy3.11 graalpy3.12
# x86_64 and aarch64 are PGO optimized below
- os: linux
manylinux: auto
target: i686
- os: linux
manylinux: auto
target: aarch64
interpreter: 3.9 3.10 3.11 3.12 3.13 3.14 graalpy3.11 graalpy3.12
- os: linux
manylinux: auto
target: armv7
interpreter: 3.9 3.10 3.11 3.12 3.13 3.14
- os: linux
manylinux: auto
target: ppc64le
interpreter: 3.9 3.10 3.11 3.12 3.13 3.14
- os: linux
manylinux: auto
target: s390x
interpreter: 3.9 3.10 3.11 3.12 3.13 3.14

# manylinux graalpy on major architectures
- os: linux
manylinux: auto
target: x86_64
interpreter: graalpy3.11 graalpy3.12
- os: linux
manylinux: auto
target: aarch64
interpreter: graalpy3.11 graalpy3.12

# musllinux
- os: linux
Expand All @@ -292,49 +292,42 @@ jobs:
- os: linux
manylinux: musllinux_1_1
target: aarch64
runs-on: ubuntu-24.04-arm

# macos;
# all versions x86_64
# older pythons which can't be run on the arm hardware for PGO
# 3.9 can't be run on the arm hardware for PGO
- os: macos
target: x86_64
interpreter: 3.9 3.10 3.11 3.12 3.13 3.14 graalpy3.11 graalpy3.12
- os: macos
target: aarch64
interpreter: 3.9 graalpy3.11 graalpy3.12

# windows;
# aarch64 only 3.11 and up, also not PGO optimized
# windows 11 arm supports 3.11 and up
- os: windows
target: i686
python-architecture: x86
interpreter: 3.9 3.10 3.11 3.12 3.13 3.14
# FIXME had link failures, needs investigation
# - os: windows
# target: aarch64
# interpreter: 3.11 3.12
exclude:
# PGO optimized below
- os: linux
manylinux: auto
target: x86_64
target: aarch64
runs-on: windows-11-arm
interpreter: "3.11 3.12 3.13 3.13t 3.14 3.14t"

runs-on: ${{ (matrix.os == 'linux' && 'ubuntu') || matrix.os }}-latest
runs-on: ${{ matrix.runs-on || format('{0}-latest', (matrix.os == 'linux' && 'ubuntu') || matrix.os) }}
steps:
- uses: actions/checkout@v5

- name: set up python
uses: actions/setup-python@v6
with:
python-version: "3.13"
architecture: ${{ matrix.python-architecture || 'x64' }}

- name: install rust stable
uses: dtolnay/rust-toolchain@stable

- name: build wheels
uses: PyO3/maturin-action@v1
with:
target: ${{ matrix.target }}
manylinux: ${{ matrix.manylinux }}
args: --release --out dist --interpreter ${{ matrix.interpreter || '3.9 3.10 3.11 3.12 3.13 3.14' }}
args: --release --out dist --interpreter ${{ matrix.interpreter || '3.9 3.10 3.11 3.12 3.13 3.14 3.14t' }}
rust-toolchain: stable
working-directory: crates/jiter-python

Expand All @@ -350,36 +343,28 @@ jobs:
path: crates/jiter-python/dist

build-pgo:
name: build pgo-optimized on ${{ matrix.os }} / ${{ matrix.interpreter }}
name: build pgo-optimized on ${{ matrix.platform.os }} / ${{ matrix.interpreter }}
# only run on push to main and on release
if: startsWith(github.ref, 'refs/tags/') || github.ref == 'refs/heads/main' || contains(github.event.pull_request.labels.*.name, 'Full Build')
strategy:
fail-fast: false
matrix:
os: [linux, windows, macos]
platform:
[
{ os: linux, runs-on: ubuntu-latest },
{ os: linux_aarch64, runs-on: ubuntu-24.04-arm },
{ os: windows, runs-on: windows-latest },
{ os: macos, runs-on: macos-latest },
]
interpreter:
["3.9", "3.10", "3.11", "3.12", "3.13", "3.13t", "3.14", "3.14t"]
include:
# standard runners with override for macos arm
- os: linux
runs-on: ubuntu-latest
- os: windows
ls: dir
runs-on: windows-latest
- os: macos
runs-on: macos-latest
exclude:
# macos arm only supported from 3.10 and up
- os: macos
- platform:
os: macos
interpreter: "3.9"
# windows 3.14 cffi install blocks build on 3.14 beta 1
# https://github.com/python/cpython/issues/133779
- os: windows
interpreter: "3.14"
- os: windows
interpreter: "3.14t"

runs-on: ${{ matrix.runs-on }}
runs-on: ${{ matrix.platform.runs-on }}
steps:
- uses: actions/checkout@v5

Expand All @@ -402,11 +387,11 @@ jobs:
interpreter: ${{ matrix.interpreter }}
rust-toolchain: ${{ steps.rust-toolchain.outputs.name }}

- run: ${{ matrix.ls || 'ls -lh' }} crates/jiter-python/dist/
- run: ${{ (startsWith(matrix.platform.os, 'windows') && 'dir') || 'ls -lh' }} crates/jiter-python/dist/

- uses: actions/upload-artifact@v4
with:
name: pypi_files_${{ matrix.os }}_${{ matrix.interpreter }}
name: pypi_files_${{ matrix.platform.os }}_${{ matrix.interpreter }}
path: crates/jiter-python/dist

build-wasm-emscripten:
Expand Down
Loading