name: pr on: pull_request: branches: - "**" concurrency: group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} cancel-in-progress: true jobs: build: env: UV_CACHE_DIR: /tmp/.uv-cache runs-on: ubuntu-24.04 strategy: matrix: python-version: ["3.10.15", "3.10.x"] uv-version: ["0.3.5", "0.4.0"] fail-fast: false steps: - name: Checkout source code uses: actions/checkout@v4 - name: Set up python id: setup-python uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} architecture: x64 - name: Set up uv run: curl -LsSf https://astral.sh/uv/${{ matrix.uv-version }}/install.sh | sh - name: Restore uv cache uses: actions/cache@v4 with: path: /tmp/.uv-cache key: uv-${{ runner.os }}-${{ hashFiles('uv.lock') }} restore-keys: | uv-${{ runner.os }}-${{ hashFiles('uv.lock') }} uv-${{ runner.os }} - name: Install dependencies run: uv sync --all-extras --dev --frozen - name: Test with pytest run: uv run pytest tests --cov=src - name: Minimize uv cache run: uv cache prune --ci build-image: runs-on: ubuntu-24.04 steps: - name: Checkout source code uses: actions/checkout@v4 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - name: Build docker image uses: docker/build-push-action@v6 with: context: . push: false