name: Report Incremental Coverage

# Runs when the build and test workflow completes.  This will run with full
# privileges, even if the other workflow doesn't.  That allows us to leave PR
# comments, when we would not be able to do so otherwise.
on:
  workflow_run:
    workflows: [Build and Test PR]
    types: [completed]

jobs:
  report:
    if: ${{ github.event.workflow_run.event == 'pull_request' }}
    runs-on: ubuntu-latest

    steps:
      - name: Checkout code
        uses: actions/checkout@v3

      - name: Compute incremental code coverage
        id: compute
        shell: bash
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        # Fetches the coverage data from the run that triggered the report,
        # parses it, compares it to the changed lines in the PR, and computes
        # the incremental code coverage.
        run: |
          python .github/workflows/compute-incremental-coverage.py \
              --repo ${{ github.repository }} \
              --run-id ${{ github.event.workflow_run.id }}

      - name: Report incremental code coverage
        uses: thollander/actions-comment-pull-request@686ab1cab89e0f715a44a0d04b9fdfdd4f33d751
        with:
          message: "Incremental code coverage: ${{ steps.compute.outputs.coverage }}"
          comment_includes: "Incremental code coverage: "
          pr_number: ${{ steps.compute.outputs.pr_number }}
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
