Skip to content

build

build #59

Workflow file for this run

name: build
on: workflow_dispatch
env:
PY_ALL: 3.9 3.10 3.11 3.12 3.13 3.13t 3.14 3.14t pypy3.9 pypy3.10 pypy3.11
jobs:
wheels:
name: wheel ${{ matrix.platform || matrix.os }}(${{ matrix.target }}) - ${{ matrix.manylinux || 'auto' }} - ${{ matrix.allocator || 'auto' }}
strategy:
fail-fast: false
matrix:
os: [ubuntu, macos]
target: [x86_64, aarch64]
manylinux: [auto]
allocator: [jemalloc]
include:
- os: ubuntu
platform: linux
target: x86_64
interpreter: 3.9 3.10 3.11 3.12 3.13 3.14 pypy3.9 pypy3.10 pypy3.11
- os: ubuntu
platform: linux
target: x86_64
interpreter: 3.13t 3.14t
allocator: mimalloc
- os: ubuntu
platform: linux
target: i686
interpreter: 3.9 3.10 3.11 3.12 3.13 3.14
allocator: jemalloc
- os: ubuntu
platform: linux
target: aarch64
# rust-cross/manylinux2014-cross:aarch64 has issues with `ring`
container: ghcr.io/rust-cross/manylinux_2_28-cross:aarch64
interpreter: 3.9 3.10 3.11 3.12 3.13 3.14 pypy3.9 pypy3.10 pypy3.11
- os: ubuntu
platform: linux
target: aarch64
# rust-cross/manylinux2014-cross:aarch64 has issues with `ring`
container: ghcr.io/rust-cross/manylinux_2_28-cross:aarch64
interpreter: 3.13t 3.14t
allocator: mimalloc
- os: ubuntu
platform: linux
target: armv7
interpreter: 3.9 3.10 3.11 3.12 3.13 3.14
allocator: jemalloc
- os: ubuntu
platform: linux
target: x86_64
manylinux: musllinux_1_1
allocator: mimalloc
- os: ubuntu
platform: linux
target: aarch64
manylinux: musllinux_1_1
allocator: mimalloc
- os: ubuntu
platform: linux
target: armv7
manylinux: musllinux_1_1
allocator: mimalloc
- os: macos
target: x86_64
interpreter: 3.9 3.10 3.11 3.12 3.13 3.14 pypy3.9 pypy3.10 pypy3.11
- os: macos
target: x86_64
interpreter: 3.13t 3.14t
allocator: mimalloc
- os: macos
target: aarch64
interpreter: 3.9 3.10 3.11 3.12 3.13 3.14 pypy3.9 pypy3.10 pypy3.11
- os: macos
target: aarch64
interpreter: 3.13t 3.14t
allocator: mimalloc
- os: windows
target: x86_64
interpreter: 3.9 3.10 3.11 3.12 3.13 3.13t 3.14 3.14t pypy3.9 pypy3.10 pypy3.11
allocator: mimalloc
runs-on: ${{ matrix.os }}-latest
steps:
- uses: actions/checkout@v4
- name: Set jemalloc for aarch64 Linux
if: matrix.target == 'aarch64' && matrix.os == 'ubuntu'
run: |
echo "JEMALLOC_SYS_WITH_LG_PAGE=16" >> $GITHUB_ENV
- uses: pyo3/maturin-action@v1
with:
rust-toolchain: stable
command: build
args: --release --out dist --features ${{ matrix.allocator }} --interpreter ${{ matrix.interpreter || env.PY_ALL }}
target: ${{ matrix.target }}
manylinux: ${{ matrix.manylinux || 'auto' }}
container: ${{ matrix.container }}
docker-options: -e CI
- name: Upload wheels
uses: actions/upload-artifact@v4
with:
name: dist-${{ matrix.platform || matrix.os }}-${{ matrix.target }}-${{ matrix.manylinux || 'auto' }}-${{ matrix.allocator || 'auto' }}
path: dist