Apache Software Foundation / SeaTunnel
Merged upstreamTestingMerged Sep 28, 2026

Route skipped modules into CI coverage

Closed three silent test-routing gaps by triggering engine Kubernetes coverage for engine changes, adding the UDF E2E module to transform tests, and mapping trace and starter paths into unit-test selection.

apache/seatunnel · #12474

CI correctness fix

Engine Kubernetes tests, Zeta UDF integration tests, and standalone trace and starter modules now run for the source changes they are intended to protect.

Problem

Engine changes skipped Kubernetes integration tests, ExampleUdfIT was not listed in any workflow job, and changes limited to seatunnel-trace or starter E2E paths triggered no Java test job at all.

Approach

Extends the engine job condition, includes the UDF module with additional timeout headroom, and adds a standalone path-to-module filter that routes trace-analyzer and starter-E2E changes into the existing unit-test workflow.

Impact and scope

  • Restores intended coverage for three classes of source changes that previously received no signal from their relevant tests.
  • Adds structural regression tests that inspect the live workflow and module metadata, making future routing omissions detectable during ordinary CI.
  • Reuses existing workflow conditions and module-selection conventions instead of introducing a parallel test-routing mechanism.
  • The stronger coverage has a deliberate cost: engine changes add two Kubernetes legs, UDF routing adds build time, and trace-only or starter-only changes now trigger the full unit-test job.

Validation

  • All 33 Python routing tests passed; new tests verify standalone mappings, real artifact identifiers, engine Kubernetes conditions, and coverage of non-connector E2E modules.
  • ExampleUdfIT passed both tests on Java 8 and Java 11 using the same Maven invocation as CI.
  • A local workflow simulation demonstrated the before-and-after job graph for trace, starter, engine, transform, connector, and documentation changes.
  • All four hosted checks passed and two upstream contributors approved the authored change; the affected long-running jobs were not directly exercised by the fork workflow before merge.