name: CI on: push: branches: [master] pull_request: branches: [master] jobs: checks: name: Check and build (Python ${{ matrix.python-version }}) runs-on: ubuntu-latest strategy: fail-fast: false matrix: python-version: ["3.10", "3.11", "3.12", "3.13"] steps: - name: Check out code uses: actions/checkout@v6 - name: Install uv uses: astral-sh/setup-uv@v7 with: enable-cache: true cache-dependency-glob: "uv.lock" - name: Set up Python ${{ matrix.python-version }} run: uv python install ${{ matrix.python-version }} - name: Install dependencies run: uv sync --all-extras --dev - name: Check formatting run: uv run ruff format --check . - name: Lint and check import sorting run: uv run ruff check --output-format=github --extend-select I . - name: Check typing run: uv run ty check --output-format=github --error-on-warning . - name: Build package run: uv build - name: Verify build artifacts run: | if [ ! -d "dist" ]; then echo "Build failed: 'dist' directory not found." exit 1 fi echo "Build artifacts found:" ls -l dist/