Add Codecov test-analytics upload - #8
Merged
Merged
Conversation
CI now emits a legacy-format JUnit XML from pytest and uploads it with codecov/test-results-action (SHA-pinned v1.2.1), alongside the existing coverage upload. Enables Codecov's failed-test reporting in PR comments. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
cjunius
enabled auto-merge (squash)
August 30, 2026 13:24
Contributor
There was a problem hiding this comment.
🟢 Approval recommended
The CI changes are scoped, SHA-pinned, and correctly configured to produce and upload JUnit results alongside coverage.
Pull request overview
Adds Codecov Test Analytics (failed-test reporting) uploads to the existing CI pipeline by generating and uploading JUnit XML results alongside coverage, without changing engine/runtime behavior.
Changes:
- Update CI
pytestinvocation to also emitjunit.xmlin legacy JUnit format. - Add a SHA-pinned
codecov/test-results-actionstep to upload JUnit results, gated with!cancelled()so it runs even if tests fail. - Ignore
junit.xmland note the additional CI uploads in the changelog.
File summaries
| File | Description |
|---|---|
CHANGELOG.md |
Documents the CI addition of Codecov coverage + test-analytics uploads. |
.gitignore |
Prevents committed CI-generated junit.xml. |
.github/workflows/ci.yml |
Generates JUnit XML during tests and uploads results to Codecov via a pinned action. |
Review details
- Files reviewed: 2/3 changed files
- Comments generated: 0
- Review effort level: Lite
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
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 Codecov's failed-test reporting (Test Analytics) alongside the coverage
upload already in CI.
pytestnow also writes a legacy-format JUnit XML (--junitxml=junit.xml -o junit_family=legacy)codecov/test-results-actionstep (SHA-pinned to v1.2.1) uploads it, gated on!cancelled()so it runs even when tests failjunit.xmlgitignored;CHANGELOG.mdnote updatedUses the existing
CODECOV_TOKENsecret. No behaviour change to the engine.Testing
ruff check .,ruff format --check .,mypy— cleanpytest --cov-report=xml --junitxml=junit.xml -o junit_family=legacy— 80 passing, 91% coverage, valid JUnit XML producedci.ymlYAML validatedChecklist
ruff check .andruff format --check .passmypypasses (strict onsrc/)pytestpasses; coverage stays >= 85%CHANGELOG.mdupdated under## [Unreleased]README.md/docs/*.mdupdated if behaviour or structure changed — n/adocs/performance.mdrefreshed if search speed changed — n/a🤖 Generated with Claude Code