One file for the next job
One file for reports and uploads.
For CI shards
Join exported .info shards into one report-ready LCOV file.
Where it fits
Merge exported shards before reporting.
One file for reports and uploads.
Same output across input order and job count.
Stream sorted files; configure sorting memory, workers, and temp space.
GitHub Action or local binary.
./lcovmerge coverage/shards/*.info -o coverage/merged.info
genhtml coverage/merged.info --output-directory coverage/html
Merge downloaded artifacts in the final job.
- name: Merge LCOV shards
uses: megasoft1978/lcovmerge@v1.2.0
with:
files: coverage/shards/*.info
output: coverage/merged.info
Unsorted: 65 ms (1 job), 64 ms (4 jobs). Output bytes matched every run. One macOS arm64 host; results vary by workload.
Version 1.2.0 is the first Rust release.
Rust results & methodology ↗LCOV output works with your existing genhtml or upload step.
Exported .info only; no .gcda, .profraw, capture, reset, or reports. Native differs from lcov -a; profile 2.6 is experimental.
./lcovmerge --lcov-compat=2.6 -a 'coverage/shard-*.info' -o coverage/merged.info
See the profile contract and full limits.