name: CI on: pull_request: push: branches: - main concurrency: group: ci-${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true permissions: contents: read jobs: quality: name: Quality runs-on: ubuntu-latest timeout-minutes: 10 steps: - name: Check out repository uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false - name: Install uv and Python uses: astral-sh/setup-uv@c771a70e6277c0a99b617c7a806ffedaca235ff9 # v9.0.0 with: version: "0.10.2" python-version: "3.11" enable-cache: true - name: Sync locked dependencies run: uv sync --locked --extra dev - name: Lint run: uv run --frozen ruff check . - name: Check formatting run: uv run --frozen ruff format --check . - name: Test run: uv run --frozen pytest