name: CI on: pull_request: push: branches: [main] permissions: contents: read concurrency: group: ci-${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true jobs: ruff: name: Ruff runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Install uv uses: astral-sh/setup-uv@v5 with: enable-cache: true cache-dependency-glob: uv.lock - name: Set up Python uses: actions/setup-python@v5 with: python-version: "3.12" - name: Install dependencies run: uv sync --locked --extra dev - name: Run Ruff run: uv run ruff check . - name: Check formatting run: uv run ruff format --check . tests: name: Tests runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Install uv uses: astral-sh/setup-uv@v5 with: enable-cache: true cache-dependency-glob: uv.lock - name: Set up Python uses: actions/setup-python@v5 with: python-version: "3.12" - name: Install dependencies run: uv sync --locked --extra dev - name: Run tests run: uv run pytest