Skip to content

ci: fix failing tests. #2

ci: fix failing tests.

ci: fix failing tests. #2

Workflow file for this run

# This file is autogenerated by maturin v1.8.7 and **manually** edited. You can
# regerate it as follows but do not forget to re-add the manual bits:
#
# maturin generate-ci github --pytest --manifest-path bindings/py/Cargo.toml
#
name: Python
on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]
permissions:
contents: read
jobs:
linux:
runs-on: ${{ matrix.platform.runner }}
strategy:
matrix:
platform:
- runner: ubuntu-22.04
target: x86_64
- runner: ubuntu-22.04
target: x86
- runner: ubuntu-22.04
target: aarch64
- runner: ubuntu-22.04
target: armv7
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: 3.13
- name: Run Rust tests for Python bindings
run: cargo test --package sysand-py --verbose --no-default-features
- name: Build wheels
uses: PyO3/maturin-action@v1
with:
target: ${{ matrix.platform.target }}
args: --release --out dist --manifest-path bindings/py/Cargo.toml --features vendored_tls
sccache: ${{ !startsWith(github.ref, 'refs/tags/') }}
manylinux: auto
before-script-linux: |
/bin/bash .github/scripts/install-linux-dependencies.sh
- name: Build free-threaded wheels
uses: PyO3/maturin-action@v1
with:
target: ${{ matrix.platform.target }}
args: --release --out dist --manifest-path bindings/py/Cargo.toml -i python3.13t --features vendored_tls
sccache: ${{ !startsWith(github.ref, 'refs/tags/') }}
manylinux: auto
before-script-linux: |
/bin/bash .github/scripts/install-linux-dependencies.sh
- name: Upload wheels
uses: actions/upload-artifact@v4
with:
name: wheels-linux-${{ matrix.platform.target }}
path: dist
- name: Install uv
uses: astral-sh/setup-uv@v6
- name: pytest
if: ${{ startsWith(matrix.platform.target, 'x86_64') }}
shell: bash
run: |
/bin/bash .github/scripts/run-pytest.sh
- name: pytest
if: ${{ !startsWith(matrix.platform.target, 'x86') && matrix.platform.target != 'ppc64' }}
uses: uraimo/run-on-arch-action@v2
with:
arch: ${{ matrix.platform.target }}
distro: ubuntu22.04
githubToken: ${{ github.token }}
install: |
apt-get update
apt-get install -y curl python3
curl -LsSf https://astral.sh/uv/install.sh | sh
run: |
export PATH=$PATH:$HOME/.local/bin
/bin/bash .github/scripts/run-pytest.sh
- name: linters
if: ${{ matrix.platform.target == 'x86_64' }}
shell: bash
run: |
cd bindings/py
source .venv/bin/activate
uv sync --group linters --active --no-install-project --locked
ruff format --check python tests
ruff check python
mypy --strict python
musllinux:
runs-on: ${{ matrix.platform.runner }}
strategy:
matrix:
platform:
- runner: ubuntu-22.04
target: x86_64
- runner: ubuntu-22.04
target: x86
- runner: ubuntu-22.04
target: aarch64
- runner: ubuntu-22.04
target: armv7
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: 3.13
- name: Run Rust tests for Python bindings
run: cargo test --package sysand-py --verbose --no-default-features
- name: Build wheels
uses: PyO3/maturin-action@v1
with:
target: ${{ matrix.platform.target }}
args: --release --out dist --manifest-path bindings/py/Cargo.toml --features vendored_tls
sccache: ${{ !startsWith(github.ref, 'refs/tags/') }}
manylinux: musllinux_1_2
- name: Build free-threaded wheels
uses: PyO3/maturin-action@v1
with:
target: ${{ matrix.platform.target }}
args: --release --out dist --manifest-path bindings/py/Cargo.toml -i python3.13t --features vendored_tls
sccache: ${{ !startsWith(github.ref, 'refs/tags/') }}
manylinux: musllinux_1_2
- name: Upload wheels
uses: actions/upload-artifact@v4
with:
name: wheels-musllinux-${{ matrix.platform.target }}
path: dist
- name: pytest
if: ${{ startsWith(matrix.platform.target, 'x86_64') }}
uses: addnab/docker-run-action@v3
with:
image: alpine:latest
options: -v ${{ github.workspace }}:/io -w /io
run: |
apk add curl bash
curl -LsSf https://astral.sh/uv/install.sh | sh
export PATH=$PATH:$HOME/.local/bin
/bin/bash .github/scripts/run-pytest.sh
- name: pytest
if: ${{ !startsWith(matrix.platform.target, 'x86') }}
uses: uraimo/run-on-arch-action@v2
with:
arch: ${{ matrix.platform.target }}
distro: alpine_latest
githubToken: ${{ github.token }}
install: |
apk add curl bash python3
run: |
curl -LsSf https://astral.sh/uv/install.sh | sh
export PATH=$PATH:$HOME/.local/bin
/bin/bash .github/scripts/run-pytest.sh
windows:
runs-on: ${{ matrix.platform.runner }}
strategy:
matrix:
platform:
- runner: windows-latest
target: x64
rust_target: x86_64-pc-windows-msvc
- runner: windows-latest
target: x86
rust_target: i686-pc-windows-msvc
python:
- version: "3.13"
label: default
args_suffix: ""
- version: "3.13t"
label: free-threaded
args_suffix: " -i python3.13t"
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python.version }}
architecture: ${{ matrix.platform.target }}
- name: Build wheels
uses: PyO3/maturin-action@v1
with:
target: ${{ matrix.platform.target }}
args: --release --out dist --manifest-path bindings/py/Cargo.toml${{ matrix.python.args_suffix }}
sccache: ${{ !startsWith(github.ref, 'refs/tags/') }}
- name: Upload wheels
uses: actions/upload-artifact@v4
with:
name: wheels-windows-${{ matrix.platform.target }}-${{ matrix.python.label }}
path: dist
- name: Run Rust tests for Python bindings
run: |
cd bindings/py
cargo test --package sysand-py --verbose --no-default-features --target ${{ matrix.platform.rust_target }}
- name: Install uv
uses: astral-sh/setup-uv@v6
- name: pytest
if: ${{ !startsWith(matrix.platform.target, 'aarch64') }}
shell: bash
run: |
export UV_PYTHON=${{ matrix.python.version }}
export ACTIVATION_SCRIPT=.venv/Scripts/activate
/bin/bash .github/scripts/run-pytest.sh ${{ matrix.python.version }}
macos:
runs-on: ${{ matrix.platform.runner }}
strategy:
matrix:
platform:
- runner: macos-13
target: x86_64
- runner: macos-14
target: aarch64
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: 3.13
- name: Run Rust tests for Python bindings
run: cargo test --package sysand-py --verbose --no-default-features
- name: Build wheels
uses: PyO3/maturin-action@v1
with:
target: ${{ matrix.platform.target }}
args: --release --out dist --manifest-path bindings/py/Cargo.toml
sccache: ${{ !startsWith(github.ref, 'refs/tags/') }}
- name: Build free-threaded wheels
uses: PyO3/maturin-action@v1
with:
target: ${{ matrix.platform.target }}
args: --release --out dist --manifest-path bindings/py/Cargo.toml -i python3.13t
sccache: ${{ !startsWith(github.ref, 'refs/tags/') }}
- name: Upload wheels
uses: actions/upload-artifact@v4
with:
name: wheels-macos-${{ matrix.platform.target }}
path: dist
- name: Install uv
uses: astral-sh/setup-uv@v6
- name: pytest
run: |
/bin/bash .github/scripts/run-pytest.sh
sdist:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Build sdist
uses: PyO3/maturin-action@v1
with:
command: sdist
args: --out dist --manifest-path bindings/py/Cargo.toml
- name: Upload sdist
uses: actions/upload-artifact@v4
with:
name: wheels-sdist
path: dist
release:
name: Release
runs-on: ubuntu-latest
if: ${{ startsWith(github.ref, 'refs/tags/') || github.event_name == 'workflow_dispatch' }}
needs: [linux, musllinux, windows, macos, sdist]
permissions:
# Use to sign the release artifacts
id-token: write
# Used to upload release artifacts
contents: write
# Used to generate artifact attestation
attestations: write
steps:
- uses: actions/download-artifact@v4
- name: Generate artifact attestation
uses: actions/attest-build-provenance@v2
with:
subject-path: 'wheels-*/*'
- name: Publish to PyPI
if: ${{ startsWith(github.ref, 'refs/tags/') }}
uses: PyO3/maturin-action@v1
env:
MATURIN_PYPI_TOKEN: ${{ secrets.PYPI_API_TOKEN }}
with:
command: upload
args: --non-interactive --skip-existing wheels-*/*