name: CI on: push: branches: [main] pull_request: branches: [main] jobs: lint: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Install uv uses: astral-sh/setup-uv@v7 with: enable-cache: true - name: Install dependencies run: uv sync --locked - name: Run ruff check run: uv run ruff check src/ tests/ - name: Run ruff format check run: uv run ruff format --check src/ tests/ typecheck: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Install uv uses: astral-sh/setup-uv@v7 with: enable-cache: true - name: Install dependencies run: uv sync --locked - name: Run mypy run: uv run mypy src/ test: runs-on: ubuntu-latest strategy: matrix: python-version: ["3.12", "3.13"] steps: - uses: actions/checkout@v4 - name: Install uv uses: astral-sh/setup-uv@v7 with: python-version: ${{ matrix.python-version }} enable-cache: true - name: Install dependencies run: uv sync --locked - name: Run tests with coverage run: uv run pytest --cov=rp --cov-report=term-missing