name: CI on: push: branches: [main] pull_request: branches: [main] jobs: test: name: test (${{ matrix.os }}, py${{ matrix.python-version }}) runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: os: [ubuntu-latest, macos-latest] python-version: ["3.11", "3.12"] steps: - uses: actions/checkout@v4 - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} - name: Install dependencies run: pip install -r requirements.txt - name: Run test suite run: pytest -q lint: name: ruff (non-blocking) runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Set up Python uses: actions/setup-python@v5 with: python-version: "3.12" - name: Install ruff run: pip install ruff # Non-blocking on purpose: the repo currently carries a pre-existing lint # baseline of ~60 errors (mostly import-order/unused-import findings from # incremental PR-by-PR development). Tighten this to a real gate (drop the # `|| true` and/or add `--exit-non-zero-on-fix`) once that baseline is # cleaned up — tracked as a follow-up, not a blocker for public release. - name: ruff check (informational) run: ruff check . || true