name: Test & Lint Python permissions: contents: read on: push: branches: ["main"] pull_request: jobs: ruff: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - name: Install uv uses: astral-sh/setup-uv@v6 - name: Set up Python uses: actions/setup-python@v6 with: python-version: "3.13" - name: Run ruff check run: uvx ruff check src/ pytest: runs-on: ubuntu-latest strategy: matrix: python-version: ["3.11", "3.12", "3.13"] steps: - name: Checkout uses: actions/checkout@v4 - name: Install uv uses: astral-sh/setup-uv@v6 - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v6 with: python-version: ${{ matrix.python-version }} - name: Install dependencies run: uv sync --extra test - name: Run tests run: uv run pytest