Skip to content

ci: re-enable cargo-llvm-cov coverage on PR/push (#1107)#3527

Merged
oferchen merged 1 commit into
masterfrom
ci/llvm-cov-coverage-1107
May 1, 2026
Merged

ci: re-enable cargo-llvm-cov coverage on PR/push (#1107)#3527
oferchen merged 1 commit into
masterfrom
ci/llvm-cov-coverage-1107

Conversation

@oferchen
Copy link
Copy Markdown
Owner

@oferchen oferchen commented May 1, 2026

Closes #1107.

Summary

  • Re-enables .github/workflows/coverage.yml on push to master and on pull_request (it was restricted to workflow_dispatch in chore: disable coverage workflow on push/pull_request #3460 due to a deterministic SIGSEGV in nightly llvm-cov 22.1).
  • Pins the coverage toolchain to nightly-2026-04-20, the last nightly known to work before the llvm::coverage::CoverageMapping::getInstantiationGroups regression. The pin is documented inline so it can be advanced once a known-good newer nightly is identified.
  • Marks the threshold step continue-on-error: true so coverage stays informational and never blocks master, per the guidance to avoid breaking required checks while we climb toward the >= 95% line-coverage target.
  • Keeps the existing --fail-under-lines 84 gate (Enforce coverage thresholds in CI #1652, Use cargo llvm-cov to enforce coverage thresholds #1691) so we record where we are without forcing a regression-free CI day on day one.
  • Improves the $GITHUB_STEP_SUMMARY table: now records the target, the current informational gate, line and branch percentages, the gate outcome, and per-crate breakdowns. LCOV (line + branch) and HTML artifacts continue to be uploaded with 30-day retention.

Audit findings (Step 1)

Notes

  • This workflow is intentionally not added to the required-checks set. It runs alongside fmt+clippy / nextest / Windows / macOS / Linux musl / interop and surfaces coverage informationally.
  • Branch coverage continues to require nightly (-Z coverage-options=branch); line coverage is measured at the same time.
  • Current measured coverage will be reported by the first run on this PR. Once it is stable at >= 95%, a follow-up should remove continue-on-error and tighten --fail-under-lines to 95 to satisfy beta-trigger criterion 3.2.

Test plan

  • Coverage workflow triggers on this PR (was previously workflow_dispatch only).
  • llvm-cov step completes without the SIGSEGV that motivated chore: disable coverage workflow on push/pull_request #3460.
  • Step summary shows line %, branch %, gate outcome, and per-crate breakdown.
  • lcov-report, lcov-branch-report, and coverage-html artifacts are uploaded.
  • Job is non-blocking - failure of the threshold gate does not fail the workflow.
  • All existing required checks (fmt+clippy, nextest stable, Windows stable, macOS stable, Linux musl stable, interop) remain green.

Restores `.github/workflows/coverage.yml` to run on push to master
and on pull requests, replacing the workflow_dispatch-only gate
applied in #3460 to work around the nightly llvm-cov 22.1 SIGSEGV.

Pins the toolchain to nightly-2026-04-20, the last nightly known to
work before the LLVM coverage mapping regression. The job remains
informational (continue-on-error) so it cannot block master while
coverage climbs from the current ~84% baseline toward the CLAUDE.md
target of >= 95% line coverage.

Step summary now records target vs gate, line and branch percentages,
the gate outcome, and per-crate breakdowns. LCOV (line + branch) and
HTML reports are uploaded as artifacts with 30-day retention.
@github-actions github-actions Bot added the ci label May 1, 2026
@oferchen oferchen merged commit c078048 into master May 1, 2026
14 checks passed
@oferchen oferchen deleted the ci/llvm-cov-coverage-1107 branch May 1, 2026 21:08
oferchen added a commit that referenced this pull request May 5, 2026
Restores `.github/workflows/coverage.yml` to run on push to master
and on pull requests, replacing the workflow_dispatch-only gate
applied in #3460 to work around the nightly llvm-cov 22.1 SIGSEGV.

Pins the toolchain to nightly-2026-04-20, the last nightly known to
work before the LLVM coverage mapping regression. The job remains
informational (continue-on-error) so it cannot block master while
coverage climbs from the current ~84% baseline toward the <internal-tool-doc>
target of >= 95% line coverage.

Step summary now records target vs gate, line and branch percentages,
the gate outcome, and per-crate breakdowns. LCOV (line + branch) and
HTML reports are uploaded as artifacts with 30-day retention.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant