Skip to content

feat: add experimental explore mode #2303

feat: add experimental explore mode

feat: add experimental explore mode #2303

Workflow file for this run

name: CI
on:
push:
branches: [main]
pull_request:
jobs:
audit:
name: Security Audit
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6
- name: Install Rust (stable)
uses: dtolnay/rust-toolchain@f7ccc83f9ed1e5b9c81d8a67d7ad1a747e22a561 # stable
with:
toolchain: stable
- name: Run cargo-audit
uses: rustsec/audit-check@e9159ac5f7d7d873ce074ca134da2f445c0a4a61 # v1
with:
token: ${{ secrets.GITHUB_TOKEN }}
args: --deny warnings
build-test:
name: Build and test (deny warnings) - ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
runs-on: ${{ matrix.os }}
steps:
- name: Checkout
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6
- name: Install Rust (stable)
uses: dtolnay/rust-toolchain@f7ccc83f9ed1e5b9c81d8a67d7ad1a747e22a561 # stable
with:
toolchain: stable
- name: Build all targets
env:
RUSTFLAGS: >-
-D dead_code
-D unused_imports
-D unused_mut
-D unused_variables
-D unused_assignments
-D unused_parens
-W unreachable_pub
-D unused_must_use
-D unused_features
run: cargo build --all-targets --all-features --locked
- name: Run tests
run: cargo test --all-targets --all-features --locked
- name: Run tests (release) on macOS
if: matrix.os == 'macos-latest'
run: cargo test --all-targets --all-features --release --locked
clippy:
name: Pre-commit (Clippy + fmt)
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6
- name: Install Rust (stable) with clippy
uses: dtolnay/rust-toolchain@f7ccc83f9ed1e5b9c81d8a67d7ad1a747e22a561 # stable
with:
toolchain: stable
components: clippy
- name: Install Python
uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6
with:
python-version: '3.12'
- name: Install uv
uses: astral-sh/setup-uv@61cb8a9741eeb8a550a1b8544337180c0fc8476b # v7
with:
python-version: '3.12'
- name: Sync Python deps for hooks
run: uv sync --group dev --locked
- name: Install pre-commit
run: pip install pre-commit
- name: Run pre-commit on all files
env:
RUSTFLAGS: >-
-D dead_code
-D unused_imports
-D unused_mut
-D unused_variables
-W unreachable_pub
-D unused_must_use
-D unused_features
run: pre-commit run --all-files
fmt:
name: Check formatting
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6
- name: Install Rust (stable) with rustfmt
uses: dtolnay/rust-toolchain@f7ccc83f9ed1e5b9c81d8a67d7ad1a747e22a561 # stable
with:
toolchain: stable
components: rustfmt
- name: Verify rustfmt (79 cols)
run: cargo fmt --all -- --check
# Release handled by release-plz workflow
python-tests:
name: Python bindings (pytest)
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"]
steps:
- name: Checkout
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6
- name: Install Python
uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6
with:
python-version: ${{ matrix.python-version }}
- name: Install uv
uses: astral-sh/setup-uv@61cb8a9741eeb8a550a1b8544337180c0fc8476b # v7
with:
python-version: ${{ matrix.python-version }}
env:
UV_PYTHON_DOWNLOADS: "0" # rely on setup-python interpreter; avoid uv downloads
- name: Sync Python deps (dev)
run: |
uv sync --group dev --locked
- name: Show Ruff version
run: uv run --no-sync ruff --version
- name: Ruff lint
run: uv run --no-sync ruff check --config pyproject.toml .
- name: Ruff format check
run: uv run --no-sync ruff format --config pyproject.toml --check .
- name: Build extension (maturin develop)
run: uv run --no-sync maturin develop -r
- name: Run pytest
run: uv run --no-sync pytest -q