Overview
Set up a GitHub Actions CI workflow that runs on push and PR to main.
Proposed Workflow
Fast Job (runs on every push/PR)
- Matrix: Python 3.10, 3.11, 3.12, 3.13, 3.14
- Steps:
uv sync
ruff check . && ruff format --check .
uv run ty check
uv run pytest -m "not slow" --cov
- Target: < 2 minutes
Slow Job (runs on PR to main only, or manual trigger)
Docs Job
- Single Python version (3.12)
- Steps:
uv sync
mkdocs build --strict
Configuration Needed
- Add
@pytest.mark.slow marker to pyproject.toml if not already present
- Ensure all MCMC tests are marked with
@pytest.mark.slow
- Add codecov upload step to fast job
- Consider caching uv dependencies
Labels
ci, infrastructure
Overview
Set up a GitHub Actions CI workflow that runs on push and PR to main.
Proposed Workflow
Fast Job (runs on every push/PR)
uv syncruff check . && ruff format --check .uv run ty checkuv run pytest -m "not slow" --covSlow Job (runs on PR to main only, or manual trigger)
uv syncuv run pytest -m slow --cov -vcores=1for MCMC tests (see Fix parallel MCMC sampling segfault (cores=1 workaround) #2)Docs Job
uv syncmkdocs build --strictConfiguration Needed
@pytest.mark.slowmarker topyproject.tomlif not already present@pytest.mark.slowLabels
ci, infrastructure