Repository navigation
ci: report test coverage - #138
Merged
Merged
Conversation
Add a Coverage job using cargo-llvm-cov. It writes a summary to the job summary, uploads lcov.info and summary.txt as an artifact, and keeps the coverage floor advisory via a documented, non-blocking threshold. Document the tool and local workflow in docs/testing.md. Closes AyinkxLab#106
The locked dependency set requires Rust 1.88 (wasmparser 0.259, stellar-strkey 0.0.18, serde_with 3.23), so the 1.85 MSRV job failed at resolution. Align the workspace rust-version and the CI MSRV job with the dependencies that are actually locked.
cargo audit flagged noyalib 0.0.5 (RUSTSEC-2026-0333), pulled in by the unmaintained serde_yml crate. serde_yaml_ng is the maintained fork with the same API for parsing YAML configuration; noyalib and serde_yml are removed from the lockfile.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds coverage reporting to CI so gaps are visible on pull requests.
Coveragejob usingcargo-llvm-cov(LLVM source-based coverage), pinned to a specific action revision.target/coverage/lcov.infoand a human-readablesummary.txt, writes the summary to the GitHub Actions job summary, and uploads both files as thecoverageartifact.continue-on-error: truewithCOVERAGE_ADVISORY_MIN_LINEScurrently0, so coverage is reported without failing PRs while a baseline is established.docs/testing.md, with a short pointer fromdocs/ci.md.Verification
All pass. The workflow YAML was parsed successfully and the coverage job is present with its seven steps.
Closes #106
MSRV fix
The first CI run showed the existing
MSRV (1.85.0)job failing before compilation because the locked dependency set requires Rust 1.88 (wasmparser0.259,stellar-strkey0.0.18,serde_with3.23). This PR now aligns the workspacerust-versionand the MSRV job to1.88.0so future PRs do not inherit that failure.Verified with the 1.88.0 toolchain that
cargo metadata --lockedresolves successfully.Security audit fix
The RustSec audit job then failed on
noyalib0.0.5 (RUSTSEC-2026-0333), pulled in by the unmaintainedserde_ymlcrate. This PR replacesserde_ymlwith the maintainedserde_yaml_ngfork (samefrom_strAPI).cargo treeconfirmsnoyalibandserde_ymlare no longer in the dependency graph, and YAML configuration tests still pass.Local audit verification after the replacement:
The vulnerable
noyalibadvisory is gone; only the non-failing warning remains.