name: ci
on:
push:
branches:
pull_request:
jobs:
rust:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- uses: dtolnay/rust-toolchain@stable
# Pure unit tests — no ORT dylib, no network, no Python linking.
- run: cargo test --locked
# Default build stays Python-free (bobine-pattern enforcement).
- run: cargo check --locked
# The wheel path (pyo3 bindings) must still compile.
- run: cargo check --locked --features extension-module
packaging:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- uses: actions/setup-python@v6
with:
python-version: "3.13"
# Versions lock-step + readme/license metadata — fails CI before any
# tag can (the OKFgraph test_packaging.py lesson).
- run: python scripts/check_packaging.py