Skip to content

nit fix

nit fix #22

Workflow file for this run

# path .github/workflows/test.yaml
# CI: lint, type-check, and unit tests on every PR and after merges to main.
# Dependencies are installed with uv from the locked pyproject/uv.lock.
name: CI
on:
push:
branches: [ main ] # after merge
pull_request: # per PR level
branches: [ main ]
jobs:
lint:
runs-on: ubuntu-latest
steps:
- name: Check out code
uses: actions/checkout@v4
- name: Install uv
uses: astral-sh/setup-uv@v5
- name: Install dependencies
run: uv sync --extra dev
- name: Ruff lint
run: uv run ruff check scl tests main.py
- name: Ruff format check
run: uv run ruff format --check scl tests main.py
- name: Mypy type check
# Non-blocking for now: the codebase is being typed incrementally.
# Remove continue-on-error once mypy passes cleanly.
continue-on-error: true
run: uv run mypy scl
test:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: [ '3.13' ]
steps:
- name: Check out code
uses: actions/checkout@v4
- name: Install uv
uses: astral-sh/setup-uv@v5
- name: Set up Python ${{ matrix.python-version }}
run: uv python install ${{ matrix.python-version }}
- name: Install dependencies
run: uv sync --extra dev --python ${{ matrix.python-version }}
- name: Run unit tests
run: uv run --python ${{ matrix.python-version }} pytest ./tests/ --cov=scl --cov-report=xml
- name: Upload coverage artifact
uses: actions/upload-artifact@v4
with:
name: coverage-${{ matrix.python-version }}
path: coverage.xml
if-no-files-found: ignore