Fix #5566: Handle action_required status in code coverage #1
Workflow file for this run
This file contains 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
# Contains jobs corresponding to publishing coverage reports generated by code_coverage.yml. | |
name: Code Coverage Report | |
# Controls when the action will run. Triggers the workflow on pull request events | |
# (opened, synchronize, reopened) | |
on: | |
pull_request: | |
types: [opened, synchronize, reopened] | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.run_id }} | |
cancel-in-progress: true | |
jobs: | |
check_code_coverage_completed: | |
name: Check code coverage completed | |
runs-on: ubuntu-latest | |
steps: | |
- name: Wait for code coverage to complete | |
id: wait-for-coverage | |
uses: ArcticLampyrid/[email protected] | |
with: | |
workflow: code_coverage.yml | |
sha: auto | |
allowed-conclusions: | | |
success | |
failure | |
code_coverage_report: | |
name: Code Coverage Report | |
needs: check_code_coverage_completed | |
if: ${{ !cancelled() }} | |
runs-on: ubuntu-latest | |
steps: | |
- name: Find CI workflow run for PR | |
id: find-workflow-run | |
uses: actions/github-script@v7 | |
with: | |
script: | | |
const { owner, repo } = context.repo; | |
const runsResponse = await github.rest.actions.listWorkflowRuns({ | |
owner, | |
repo, | |
workflow_id: 'code_coverage.yml', | |
event: 'pull_request', // Ensure only PR events are fetched | |
head_sha: '${{ github.event.pull_request.head.sha }}', | |
}); | |
const runs = runsResponse.data.workflow_runs.filter(run => run.event === 'pull_request'); | |
runs.sort((a, b) => new Date(b.created_at).getTime() - new Date(a.created_at).getTime()); | |
const run = runs[0]; | |
if (!run) { | |
core.setFailed('Could not find a successful workflow run for the PR'); | |
return; | |
} | |
core.setOutput('run-id', run.id); | |
- name: Download Generated Markdown Report | |
uses: actions/download-artifact@v4 | |
if: ${{ !cancelled() }} # IMPORTANT: Upload reports regardless of success or failure status | |
with: | |
name: final-coverage-report | |
github-token: ${{ secrets.GITHUB_TOKEN }} | |
run-id: ${{ steps.find-workflow-run.outputs.run-id }} | |
- name: Upload Coverage Report for Comments | |
uses: actions/upload-artifact@v4 | |
if: ${{ !cancelled() }} | |
with: | |
name: coverage-report-for-comment | |
path: 'CoverageReport.md' |