name: CI on: push: branches: - "**" tags-ignore: - "v*" pull_request: concurrency: group: ci-${{ github.ref }} cancel-in-progress: true jobs: test: name: Python ${{ matrix.python-version }} runs-on: ubuntu-latest strategy: fail-fast: false matrix: python-version: ["3.12", "3.13", "3.14"] steps: - name: Checkout uses: actions/checkout@v5 - name: Install uv uses: astral-sh/setup-uv@v7 with: python-version: ${{ matrix.python-version }} enable-cache: true - name: Install dependencies run: uv sync - name: Lint (format) run: uv run ruff format --check - name: Lint (ruff) run: uv run ruff check . - name: Type check run: uv run ty check . - name: Tests run: uv run pytest - name: Build (wheel + sdist) run: uv build