Publish actionable test-failure reports
Added a reusable GitHub composite action that summarizes failed Maven test cases and uploads raw XML reports, then connected it to 46 unit, benchmark, engine, transform, and connector test jobs.
apache/seatunnel · #12470
CI diagnostics feature
Failed SeaTunnel test jobs now expose a concise failing-test summary and downloadable Surefire or Failsafe reports instead of leaving contributors to search logs with hundreds of thousands of lines.
Problem
When a CI test job failed, its Surefire and Failsafe reports disappeared with the runner. Contributors had to search 150,000- to 430,000-line logs to identify the failing case and recover its stack trace or captured output.
Approach
Parses failed and errored test cases into a capped job-summary table and uploads uniquely named report artifacts for seven days. The action runs only after failure, tolerates absent reports, and still uploads raw artifacts if summary generation fails.
Impact and scope
- Turns a red test job into an immediately scannable list of failing classes and methods with downloadable diagnostic evidence.
- Centralizes the behavior in one composite action while covering 46 matrix and integration-test jobs without adding overhead to green runs.
- Uses attempt-, job-, platform-, and JDK-specific artifact names so matrix legs and reruns do not overwrite one another.
- Jobs cancelled by a timeout do not satisfy the failure condition and remain outside this contribution's coverage.
Validation
- Actionlint, YAML parsing, and a local run against real Surefire and Failsafe reports validated failure, error, escaping, and no-report behavior.
- A separate fork workflow exercised the complete action on Ubuntu and Windows, producing the expected summary rows and downloadable artifacts on both platforms.
- The PR's own green run could not exercise the failure-only path, and no real upstream connector failure had validated it before merge.
- All four hosted checks passed and two upstream contributors approved the authored change.