Python - Test Coverage Report #6449
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Python - Test Coverage Report | |
| on: | |
| workflow_run: | |
| workflows: ["Python - Test Coverage"] | |
| types: | |
| - completed | |
| permissions: | |
| contents: read | |
| actions: read | |
| pull-requests: write | |
| jobs: | |
| python-test-coverage-report: | |
| runs-on: ubuntu-latest | |
| if: github.event.workflow_run.conclusion == 'success' | |
| continue-on-error: false | |
| defaults: | |
| run: | |
| working-directory: python | |
| steps: | |
| - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 | |
| - name: Download coverage report | |
| uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8 | |
| with: | |
| github-token: ${{ github.token }} | |
| run-id: ${{ github.event.workflow_run.id }} | |
| path: ./python | |
| merge-multiple: true | |
| - name: Display structure of downloaded files | |
| run: ls | |
| - name: Read and validate PR number | |
| # Keep the artifact handoff aligned with the workflow run that produced it. | |
| env: | |
| GH_TOKEN: ${{ github.token }} | |
| REPO: ${{ github.repository }} | |
| RUN_HEAD_SHA: ${{ github.event.workflow_run.head_sha }} | |
| run: | | |
| if [ ! -s pr_number ]; then | |
| echo "PR number file 'pr_number' is missing or empty" | |
| exit 1 | |
| fi | |
| ARTIFACT_PR_NUMBER=$(cat pr_number) | |
| if ! [[ "$ARTIFACT_PR_NUMBER" =~ ^[0-9]+$ ]]; then | |
| echo "::error::PR number file contains invalid content" | |
| exit 1 | |
| fi | |
| PR_HEAD_SHA=$(gh pr view "$ARTIFACT_PR_NUMBER" --repo "$REPO" --json headRefOid --jq '.headRefOid') | |
| if [ "$PR_HEAD_SHA" != "$RUN_HEAD_SHA" ]; then | |
| echo "::error::PR head SHA does not match the triggering workflow run" | |
| exit 1 | |
| fi | |
| echo "PR_NUMBER=$ARTIFACT_PR_NUMBER" >> "$GITHUB_ENV" | |
| - name: Pytest coverage comment | |
| id: coverageComment | |
| uses: MishaKav/pytest-coverage-comment@dd5b80bde6d16941f336518e92929e89069d8451 # v1.7.2 | |
| with: | |
| github-token: ${{ github.token }} | |
| issue-number: ${{ env.PR_NUMBER }} | |
| pytest-xml-coverage-path: python/python-coverage.xml | |
| title: "Python Test Coverage Report" | |
| badge-title: "Python Test Coverage" | |
| junitxml-title: "Python Unit Test Overview" | |
| junitxml-path: python/pytest.xml | |
| default-branch: "main" | |
| report-only-changed-files: true |