Repository navigation
ci: dogfood the pull request patchcov build - #135
Conversation
CoverageTotal: 99.4% ⚪ 0 pp vs Comparing No per-file coverage changes vs Touched files absent from every coverage report (2)
These files may contain no executable code or may have been omitted from the coverage run. Patch coverageNo new executable lines added by this diff. |
PR buildMeasured and rendered by this PR's own patchcov build. No baseline deltas; see the release Coverage report for those. CoverageTotal: 99.4% Comparing No baseline available yet (first run, or the Touched files absent from every coverage report (2)
These files may contain no executable code or may have been omitted from the coverage run. Patch coverageNo new executable lines added by this diff. Full per-file summary is attached as the coverage-summary build artifact. |
Closes #134
The existing Coverage job runs the last release, so it cannot catch regressions in the PR's own diff, parser or renderer. This adds a parallel advisory
Coverage (PR build)job that checks out the immutable PR head, builds its locked debug binary, measures the same checkout with cargo-llvm-cov and invokes./target/debug/patchcovexplicitly for rendering and gating.The job publishes a separate sticky comment, run summary and artifact before enforcing 90% patch / 95% overall coverage. Fork PRs skip comments but retain reports and gates. It runs only on pull requests and has its own cache key and 15-minute timeout. The existing released-action job and required checks are unchanged.
The new job intentionally has no baseline: it reports patch and total coverage; project deltas and indirect changes remain in the release report. The action always installs a release even in thin mode and has no local-binary input, so direct CLI orchestration avoids changes to the external action. The cost is one extra debug build plus instrumented test run. CONTRIBUTING explains the distinction.
Implementation plan: #134 (comment)
Verification
All passed locally, repeated after fetching/rebasing onto origin/main (which had not moved):
actionlint .github/workflows/ci.ymlandgit diff --check.cargo fmt --check,cargo test --locked --all-targets,cargo test --locked --doc.cargo clippy --locked --all-targets -- -D warnings,cargo run --locked -- lint-markers.cargo +1.88.0 test --locked --all-targetsandcargo +1.88.0 test --locked --doc.RUSTDOCFLAGS='-D warnings' cargo doc --locked --no-deps --document-private-items.cargo build --locked --bin patchcov,cargo llvm-cov --locked --all-features --workspace --no-report, andcargo llvm-cov report --lcov --output-path coverage-pr-head.lcov.Review and limitations
Reviewed the committed changes in ci.yml and CONTRIBUTING.md against origin/main: no actionable findings; none fixed or skipped. No departures from the plan or unrelated follow-ups.
Hosted job execution, actual added CI time and fork-token behavior require GitHub verification; local runs cannot prove comment/artifact publication.