ctrf-io / ctrf-io/github-test-reporter
Summary table in PR comment uses single report instead of merged data when multiple CTRF files match report-path glob
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 376
- Forks
- 42
- PR merge metrics
- No merged PRs in 30d
Description
When using report-path with a glob pattern that matches multiple CTRF report files (e.g. from sharded Playwright runs), the action correctly merges data for:
- The uploaded artifact (correct totals)
- Annotations (all failures annotated)
- Insights section (aggregated historical data)
However, the Summary table in the PR comment only reflects one of the matched files instead of the merged totals.
Reproduction
3 Playwright shards each produce a ctrf-report.json, uploaded as separate artifacts and downloaded into e2e-artifacts/:
| Shard | Tests | Passed | Failed | Skipped |
|---|---|---|---|---|
| 1 | 53 | 24 | 3 | 26 |
| 2 | 49 | 34 | 0 | 15 |
| 3 | 49 | 36 | 3 | 10 |
| Expected merged | 151 | 94 | 6 | 51 |
Config:
report-path: "e2e-artifacts/**/ctrf-report.json"
Logs confirm all 3 reports are read (Read 3 CTRF reports), and 6 failures are annotated via ##[error]. But the Summary table shows shard 2's numbers only (49 tests, 0 failed).
Expected behavior
The Summary table should reflect the merged totals across all matched CTRF files (151 tests, 6 failed).
Workaround
Pre-merge the CTRF reports into a single file before passing to the action, so report-path only matches one file.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by tracing how the report-path glob results are read and how the PR comment Summary table obtains its data. Reproduce the issue with three CTRF files matching the glob, then verify that the table reports merged totals of 151 tests and 6 failures rather than one shard's values.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- github-actions, typescript
- Domain
- ci-cd, testing
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100