name: CI on: pull_request: push: branches: - main concurrency: group: ci-${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true jobs: checks: name: Checks runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - name: Set up Python uses: actions/setup-python@v5 with: python-version: "3.12" - name: Install just uses: taiki-e/install-action@just - name: Install uv uses: astral-sh/setup-uv@v6 with: enable-cache: true cache-dependency-glob: | pyproject.toml uv.lock - name: Install dependencies run: just install-dev - name: Run formatting, lint, and type checks run: just check tests: name: Tests (Python ${{ matrix.python-version }}) runs-on: ubuntu-latest strategy: fail-fast: false matrix: python-version: - "3.10" - "3.11" - "3.12" steps: - name: Checkout uses: actions/checkout@v4 - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} - name: Install just uses: taiki-e/install-action@just - name: Install uv uses: astral-sh/setup-uv@v6 with: enable-cache: true cache-dependency-glob: | pyproject.toml uv.lock - name: Install dependencies run: just install-dev - name: Run test suite run: just test