name: Python - Test Coverage on: pull_request: branches: ["main", "feature*"] paths: - "python/packages/**" - "python/tests/unit/**" env: # Configure a constant location for the uv cache UV_CACHE_DIR: /tmp/.uv-cache jobs: python-tests-coverage: runs-on: ubuntu-latest continue-on-error: false defaults: run: working-directory: python env: UV_PYTHON: "3.10" steps: - uses: actions/checkout@v4 # Save the PR number to a file since the workflow_run event # in the coverage report workflow does not have access to it - name: Save PR number run: | echo ${{ github.event.number }} > ./pr_number - name: Set up uv uses: astral-sh/setup-uv@v6 with: version-file: "python/pyproject.toml" enable-cache: true cache-suffix: ${{ runner.os }}-${{ env.UV_PYTHON }} cache-dependency-glob: "**/uv.lock" - name: Install the project run: uv sync --all-extras --dev - name: Run all tests with coverage report run: uv run poe all-tests --cov-report=xml:python-coverage.xml -q --junitxml=pytest.xml - name: Upload coverage report uses: actions/upload-artifact@v4 with: path: | python/python-coverage.xml python/pytest.xml python/pr_number overwrite: true retention-days: 1 if-no-files-found: error