Add Codecov coverage reporting to CI#802
Merged
Merged
Conversation
These files drifted from the .editorconfig line-ending rules (LF where CRLF is mandated for .yml/.md/.json) or were missing the mandated final newline. Bring them to spec; no content changes. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The unit-test job collected no coverage. Emit Cobertura from the existing dotnet test run (coverlet.collector was already referenced) and upload it to Codecov for trending only - never gated: the upload sets fail_ci_if_error false and codecov.yml marks status informational, so a coverage change or Codecov outage cannot block a merge. CODECOV_TOKEN is threaded via secrets: inherit and audited in both the Actions and Dependabot secret stores by configure.sh, since a Dependabot-triggered push runs the validate job too. Docs (WORKFLOW.md, repo-config/README.md) list the new secret; AGENTS.md notes CI CLI linters can run via Docker. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
There was a problem hiding this comment.
Pull request overview
Adds non-gating Codecov coverage reporting to the existing CI validation flow, so test coverage is collected and uploaded for visibility without affecting merge eligibility.
Changes:
- Collect Cobertura coverage during
dotnet testin the reusablevalidate-taskworkflow and upload it to Codecov withfail_ci_if_error: false. - Add
codecov.ymlto mark Codecov project/patch statuses as informational (report-only), and document/audit the requiredCODECOV_TOKENsecret. - Normalize line endings / add final newlines across various docs/config/sample JSON files per updated repo guidance.
Reviewed changes
Copilot reviewed 8 out of 23 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| WORKFLOW.md | Documents CODECOV_TOKEN usage and the report-only/non-gating intent. |
| codecov.yml | Configures Codecov statuses as informational and disables PR comments. |
| .github/workflows/validate-task.yml | Adds coverage collection to unit tests and uploads coverage to Codecov (non-gating). |
| .github/workflows/test-pull-request.yml | Passes secrets through to the reusable validate workflow so coverage upload can authenticate. |
| .github/workflows/build-release-task.yml | Passes secrets through to the reusable validate workflow in release orchestration. |
| repo-config/configure.sh | Audits CODECOV_TOKEN presence in both Actions and Dependabot secret stores. |
| repo-config/README.md | Documents the additional required secret name (CODECOV_TOKEN) and dual-store requirement. |
| .gitignore | Ignores the generated coverage/ directory from local runs/CI artifacts. |
| AGENTS.md | Updates line-ending guidance to always honor .editorconfig; adds note about running CI CLI tooling via Docker. |
| .vscode/tasks.json | Line-ending/final-newline normalization only (no behavioral task changes). |
| Docs/LanguageMatching.md | Line-ending/final-newline normalization only. |
| Docs/CustomOptions.md | Line-ending/final-newline normalization only. |
| Docs/ClosedCaptions.md | Line-ending/final-newline normalization only. |
| PlexCleaner.schema.json | Final newline / formatting normalization only. |
| PlexCleaner/Properties/launchSettings.json | Final newline / formatting normalization only. |
| Samples/PlexCleaner/PlexCleaner.v1.json | Final newline / formatting normalization only. |
| Samples/PlexCleaner/PlexCleaner.v2.json | Final newline / formatting normalization only. |
| Samples/PlexCleaner/PlexCleaner.v3.json | Final newline / formatting normalization only. |
| Samples/PlexCleaner/PlexCleaner.v4.json | Final newline / formatting normalization only. |
| .config/dotnet-tools.json | Final newline / formatting normalization only. |
| .github/workflows/get-version-task.yml | Line-ending/final-newline normalization only. |
| .github/workflows/build-executable-task.yml | Line-ending/final-newline normalization only. |
| .github/workflows/build-docker-task.yml | Line-ending/final-newline normalization only. |
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.
Coverage reporting (report-only, never gated)
The
unit-testjob randotnet testwith no coverage collection. This change:dotnet test --collect:"XPlat Code Coverage" --results-directory ./coverage(coverlet.collectorwas already referenced, just unused).codecov/codecov-action(SHA-pinned to v7.0.0) withfail_ci_if_error: false.codecov.ymlmarking project/patch statusinformational, so a coverage change never blocks a merge. The only ruleset-required check remains "Check pull request workflow status job".CODECOV_TOKENthrough the reusablevalidate-task.ymlviasecrets: inheriton both callers, and audits it in both the Actions and Dependabot secret stores inrepo-config/configure.sh(a Dependabot-triggered push runsvalidatetoo). Docs updated:WORKFLOW.md§6 andrepo-config/README.md.AGENTS.md: note that CI CLI linters (actionlint, markdownlint, etc.) can be run via Docker.Line-ending normalization (separate commit)
Repo-wide sweep bringing files to their
.editorconfigending (CRLF for.yml/.md/.json) and adding missing final newlines. Content-identity verified: only endings/final-newlines changed on those files.AGENTS.mdline-ending guidance updated to "always honor.editorconfig" (fix on edit/create/discovery).Verification
dotnet test: 162/162 pass; the--collectrun produces./coverage/<guid>/coverage.cobertura.xml.actionlint(Docker) on all workflows: clean.markdownlint-cli2(Docker) on all markdown: 0 errors.🤖 Generated with Claude Code