From the pre-open review of #23. In csharp-ci.yaml and scala-ci.yaml, the coverage-output job downloads the coverage artifact with continue-on-error: true, then defaults to an empty coverage value if the file is absent. That collapses two distinct cases:
- No coverage shard ran → empty is correct (badge intentionally skipped). ✅
- A coverage shard ran (artifact uploaded with
if-no-files-found: error) but the download itself failed (throttling, retention, infra) → empty silently produces a blank/stale coverage badge on an otherwise-green run. ❌
Fix: pass whether any shard requested coverage into the job; if so, drop continue-on-error so a missing-but-expected artifact fails loud; if not, skip the download step via if:. At minimum emit a ::warning:: when the file is unexpectedly absent.
From the pre-open review of #23. In
csharp-ci.yamlandscala-ci.yaml, thecoverage-outputjob downloads the coverage artifact withcontinue-on-error: true, then defaults to an empty coverage value if the file is absent. That collapses two distinct cases:if-no-files-found: error) but the download itself failed (throttling, retention, infra) → empty silently produces a blank/stale coverage badge on an otherwise-green run. ❌Fix: pass whether any shard requested coverage into the job; if so, drop
continue-on-errorso a missing-but-expected artifact fails loud; if not, skip the download step viaif:. At minimum emit a::warning::when the file is unexpectedly absent.