Repository navigation
Report Rust test coverage to Codecov - #2636
somewhatabstract wants to merge 6 commits into
Conversation
Adds a coverage job to the Rust CI workflow that runs the tests under cargo-llvm-cov and uploads Codecov JSON with the `rust` flag. The Jest upload gets the `typescript` flag, and .codecov.yml gives each flag its own project status plus carryforward, so pull requests that only run one workflow keep the other language's last report. Closes #2627. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QjLhVH1NnUc7MzCSYLd8Yn
🦋 Changeset detectedLatest commit: 9119459 The changes in this PR will be included in the next version bump. This PR includes changesets to release 0 packagesWhen changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## claude/jolly-galileo-72zesp-rust-checksum #2636 +/- ##
=============================================================================
- Coverage 100.00% 99.89% -0.11%
=============================================================================
Files 51 53 +2
Lines 959 988 +29
Branches 231 260 +29
=============================================================================
+ Hits 959 987 +28
- Misses 0 1 +1
Flags with carried forward coverage won't be shown. Click here to find out more. Continue to review full report in Codecov by Harness.
🚀 New features to boost your workflow:
|
Bundle ReportBundle size has no change ✅ |
…ileo-72zesp-rust-coverage
…jolly-galileo-72zesp-rust-coverage
Uses the same SHAs as the repository-wide pinning in #2643, so this merges cleanly whichever lands first, and covers the coverage job's taiki-e/install-action and codecov-action, which aren't on main yet. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QjLhVH1NnUc7MzCSYLd8Yn
…jolly-galileo-72zesp-rust-coverage # Conflicts: # .github/workflows/nodejs.yml
…ileo-72zesp-rust-coverage
Summary
Measures Rust test coverage in CI and uploads it to Codecov, reported separately from TypeScript so neither language's numbers can hide the other's.
Stack
Issues
Closes #2627. Part of #2614 (Phase 1), which is under #2524.
Details
.github/workflows/rust.yml: newcoveragejob on Ubuntu:llvm-tools-previewcomponent, which only this job needscargo-llvm-covwithtaiki-e/install-action, which is much faster thancargo installcargo llvm-cov --workspace --locked --codecov --output-path codecov.jsonflags: rust.github/workflows/nodejs.yml: the Jest upload now setsflags: typescript..codecov.yml:project: defaultstatus is replaced by one status per flag (typescript,rust). Each keeps the previous default target ofauto, which fails if coverage goes down.flagsmapstypescripttosrc/andrusttorust/, both withcarryforward: true. The Rust workflow only runs when Rust code changes, so on a TypeScript-only PR therustflag reuses its last report instead of showing as missing, and the same in reverse.Checked locally
cargo llvm-covwith the checksum code in place:calc_checksum.rs: 100% lines, functions and regions.checksync-cli/src/main.rs: 0%. That's accurate, since it's the emptyfn main() {}until Phase 5.Review notes
.codecov.ymlwith Codecov's validator, because this container's network proxy blocks it. The first CI run is the real test. Look for separatetypescriptandrustflags in the Codecov comment.default: true, which is anautotarget, not a fixed 100%. I kept that behavior. If you want a fixedtarget: 100%for TypeScript, or later for Rust, it's a one-line change.Generated by Claude Code