mirror of
https://github.com/navidrome/navidrome.git
synced 2026-10-18 07:30:29 +00:00
ci: delete the stale coverage comment when a run produces no profile
A PR that reverts its Go changes but keeps a doc change produces no coverage artifact, so every step after the probe skips, octocov never runs, and its comment for the earlier head stays on the PR reporting a delta that is zero by construction. Gating those steps is what made this reachable. The comment is matched on `<!-- octocov -->`, the signature octocov appends and keys `updatePrevious` off itself, which is also what distinguishes it from the download-link comment posted by the same bot. The PR number comes from the base repo's workflow_run head sha rather than from the artifact, so the fork-controlled-input cross-check that guards the profile path does not apply: nothing is downloaded or executed on this path.
This commit is contained in:
parent
d3bed09363
commit
4f3e12738a
17
.github/workflows/coverage-on-pr.yml
vendored
17
.github/workflows/coverage-on-pr.yml
vendored
@ -25,6 +25,23 @@ jobs:
|
||||
--jq '.total_count')
|
||||
echo "count=$count" >> "$GITHUB_OUTPUT"
|
||||
|
||||
# A PR that reverts its Go changes produces no artifact, but octocov's
|
||||
# comment for the earlier head stays. Match the marker it keys off itself.
|
||||
- name: Delete the stale coverage comment
|
||||
if: steps.artifact.outputs.count == '0'
|
||||
env:
|
||||
GH_TOKEN: ${{ github.token }}
|
||||
HEAD_SHA: ${{ github.event.workflow_run.head_sha }}
|
||||
run: |
|
||||
number=$(gh api --paginate "repos/$GITHUB_REPOSITORY/pulls?state=open&per_page=100" \
|
||||
--jq ".[] | select(.head.sha == \"$HEAD_SHA\") | .number" | head -n1)
|
||||
[ -n "$number" ] || exit 0
|
||||
id=$(gh api --paginate "repos/$GITHUB_REPOSITORY/issues/$number/comments" \
|
||||
--jq '.[] | select(.user.login == "github-actions[bot]" and (.body | contains("<!-- octocov -->"))) | .id' | head -n1)
|
||||
if [ -n "$id" ]; then
|
||||
gh api -X DELETE "repos/$GITHUB_REPOSITORY/issues/comments/$id"
|
||||
fi
|
||||
|
||||
# Only the config, from the base branch: this job holds a write token, so
|
||||
# it must never check out the fork.
|
||||
- name: Check out the octocov config
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user