ci: add code coverage tracking with SimpleCov and Codecov - #40
Conversation
- SimpleCov wired into spec_helper.rb (must start before `require "chorus"`), with a MultiFormatter: HTML for local browsing (coverage/index.html), Cobertura XML for Codecov — Codecov's uploader doesn't understand SimpleCov's native .resultset.json format directly. - minimum_coverage set to 80%, matching the actual measured baseline (85.06%) with a little headroom, not an arbitrary target. client.rb is the main gap (~44%) since every existing spec mocks Client entirely — tracked separately as issue #9. - CI uploads coverage/coverage.xml to Codecov via OIDC (no CODECOV_TOKEN secret to manage, consistent with how RubyGems publishing already works in this repo), non-blocking on upload failure. - coverage/ gitignored. - Codecov badge added to README. Closes #23 Note: the Codecov badge/dashboard won't show real data until the repo is activated on codecov.io (sign in with GitHub, the repo should show up automatically since it's public) — the workflow itself doesn't require that to keep passing, since fail_ci_if_error defaults to false.
|
Warning Review limit reached
Next review available in: 49 minutes You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (5)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Summary
spec_helper.rb, with HTML (local) + Cobertura XML (Codecov — it doesn't understand SimpleCov's native.resultset.json) formattersminimum_coverage 80— matches the actual measured baseline (85.06%) with headroom, not a made-up number.client.rbis the main gap (~44%) since every spec mocks it entirely; tracked as No HTTP-contract-level test for Client's request shape #9CODECOV_TOKENsecret to manage (same pattern as the RubyGems trusted publishing already in this repo), non-blocking on upload failurecoverage/gitignored, badge added to READMECloses #23
Heads up
The Codecov badge won't show real numbers until the repo is activated on codecov.io (sign in with GitHub — should auto-detect since the repo is public). The workflow itself doesn't depend on that to stay green.
Test plan
bundle exec rspec— 34/34 passing, coverage report generates (HTML + XML) locallygem build chorus-llm.gemspec— builds cleanly