name: Run tests on: pull_request: push: branches: [master] jobs: test: runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: os: [ubuntu-latest] python-version: ["3.8", "3.9", "3.10", "3.11", "3.12", "3.13", "3.14"] include: # macOS runners cost 10x Linux minutes - only test the oldest # and newest supported Python there to catch platform-specific # issues without running the full matrix twice. - os: macos-latest python-version: "3.8" - os: macos-latest python-version: "3.14" steps: - uses: actions/checkout@v6 - name: Install uv and set the Python version uses: astral-sh/setup-uv@v7 with: python-version: ${{ matrix.python-version }} - name: Install the project run: uv sync --all-extras --dev - name: Run tests run: uv run pytest tests