status: active
timestamp: 2026-06-20
tags: [services, code-quality, coverage, testing]
Codecov
Coverage tracking per PR — uploads LCOV from Vitest, free for public repos
Codecov
Role
Tracks per-PR test coverage. The CI workflow runs Vitest with the
LCOV reporter, then codecov/codecov-action@v5 uploads the report.
Codecov posts a comment on the PR showing coverage delta vs main
and adds a status check that fails if coverage drops below the
configured floor.
Free tier
Free forever for public repos:
- Unlimited uploads
- Unlimited reports
- Unlimited committers / contributors
- All languages
- PR comments + status checks
- Coverage badges
- Branch + flag-based reporting
Card / subscription required?
NO for public repos. Sign-in via GitHub OAuth; no payment method requested. The family’s public-repos-only stance keeps every repo eligible.
Alternatives
- Sonarcloud — also tracks coverage, but the rendering is part of the SAST report and the dashboard is busier for “what’s the coverage delta on this PR” specifically.
- Coveralls — similar, smaller community, slower PR comments.
- Self-hosted (Coverage Gutters in editor only) — no PR feedback.
Swap cost
Low. Replace codecov/codecov-action@v5 with the alternative’s
action; LCOV format is universal. Coverage thresholds live in
codecov.yml at repo root.
Why this is our pick
Five-tool code-quality stack (decision) needs vendor-redundant signals: Sonarcloud renders coverage as part of its quality gate, Codecov renders it as the dedicated PR artefact. Codecov’s PR comment is the most-read signal during reviews and the family ships it on every public repo without paying anything.
Cross-refs
- Code quality services index
- Five-tool code quality decision
- Vitest — emits LCOV
- Sonarcloud — also tracks coverage
- No card-on-file rule