Draft
Conversation
Side-by-side coverage reporting: adds Datadog coverage upload alongside existing Codecov upload using the coverage-upload-github-action. Mirrors the per-flag matrix upload structure. Also adds code-coverage.datadog.yml with ignore paths matching codecov.yml. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
🎯 Code Coverage (details) 🔗 Commit SHA: e708754 | Docs | Datadog PR Page | Was this helpful? React with 👍/👎 or give us feedback! |
Go coverprofiles use the module import path (github.com/DataDog/orchestrion/_samples/...) not the filesystem path (samples/...). When Datadog strips the module prefix, the resulting path is _samples/ not samples/. Add _samples/ to the ignore list to match both the filesystem and module path variants. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…paths The ci-app-coverage-reducer's GoCoverprofilePathResolver fails to resolve file paths when the Go module name differs from the filesystem directory name (e.g., module "github.com/DataDog/orchestrion/_samples" lives in "samples/" on disk). The suffix matching tries "_samples/..." against the git repo index but finds no match because the directory is "samples/". This causes paths to remain as full module import paths like "github.com/DataDog/orchestrion/_samples/client/main.go", which don't match PREFIX-type ignore patterns like "_samples/". Fix: add glob patterns (**/_samples/**, **/_tools/**, **/dot_ast.proxies.go) that match unresolved paths regardless of the module prefix. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
kakkoyun
approved these changes
Mar 12, 2026
The datadog-ci CLI discovers code-coverage.datadog.yml via `git rev-parse HEAD:<path>`, but the upload job only downloaded coverage artifacts without checking out the repo. The CLI logged "Not syncing git metadata (not a git repo)" and skipped config discovery, so ignore rules were never sent to the reducer. Adding actions/checkout ensures the CLI can find and include the config file metadata (path + SHA) in the upload event, allowing the reducer to apply ignore rules for _samples/, _tools/, and generated files. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The Datadog coverage reducer averages per-report coverage instead of OR-merging line-level data. With 76 separate reports (integration ~47%, unit ~52%), the average is ~50.6% while the union is ~69%. Fix: merge all Go coverprofiles into a single file before uploading, so the reducer computes coverage from the correct union of all lines. Also removes per-flag matrix upload since the merged file already contains all coverage data.
Exclude _samples/, _tools/, and dot_ast.proxies.go entries from the merged Go coverprofile before uploading to Datadog. These paths are already ignored by Codecov (codecov.yml) and listed in code-coverage.datadog.yml, but the Datadog reducer may not resolve Go module paths (e.g. github.com/DataDog/orchestrion/_samples/...) to filesystem paths correctly due to the module/directory name mismatch. Filtering at merge time ensures parity regardless of reducer behavior. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #799 +/- ##
==========================================
+ Coverage 65.72% 70.81% +5.09%
==========================================
Files 113 116 +3
Lines 7926 6900 -1026
==========================================
- Hits 5209 4886 -323
+ Misses 2192 1441 -751
- Partials 525 573 +48
🚀 New features to boost your workflow:
|
github-merge-queue bot
pushed a commit
that referenced
this pull request
Mar 13, 2026
## Summary Adds `code-coverage.datadog.yml` to configure Datadog Code Coverage ignore rules. This is a prerequisite for the coverage upload PR (#799) — the Datadog coverage reducer discovers this config file from the default branch via GitDB, so it must be merged to `main` before coverage uploads will apply ignore rules correctly. ### Ignore rules Excludes the following from coverage reporting (matching the existing Codecov behavior): - `samples/` and `_samples/` — test fixture directories - `_tools/` — build tooling - `dot_ast.proxies.go` — generated proxy file Includes both repo-relative paths and glob patterns to handle the Go module path resolver's suffix-matching limitation (where `_samples` Go module maps to `samples/` directory on disk). ### Context Part of the Codecov → Datadog Code Coverage migration. See #799 for the full upload integration. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
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
validate.ymlworkflowDataDog/coverage-upload-github-actionwith the same per-flag matrix strategy as Codecov uploadscode-coverage.datadog.ymlwith ignore paths matchingcodecov.yml(samples/, _tools/, auto-generated proxy)DD_CI_API_KEYsecret (already available in this repo)Test plan
🤖 Generated with Claude Code