name: Python
on:
push:
branches: [master, main]
pull_request:
branches: [master, main]
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
permissions: {}
jobs:
build:
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
python: ["3.11", "3.12", "3.13"]
runs-on: ${{ matrix.os }}
defaults:
run:
working-directory: python
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
- uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python }}
- run: pip install maturin pytest
- run: maturin build --release --out dist
- name: Install wheel (unix)
if: runner.os != 'Windows'
run: pip install dist/*.whl
- name: Install wheel (windows)
if: runner.os == 'Windows'
shell: pwsh
run: pip install (Get-ChildItem dist/*.whl | Select-Object -First 1).FullName
- run: pytest tests/ -v