Skip to content

[CI] Split Spark lake tests to reduce pipeline time#3717

Open
litiliu wants to merge 1 commit into
apache:mainfrom
litiliu:codex/split-spark-ci-tests
Open

[CI] Split Spark lake tests to reduce pipeline time#3717
litiliu wants to merge 1 commit into
apache:mainfrom
litiliu:codex/split-spark-ci-tests

Conversation

@litiliu

@litiliu litiliu commented Jul 21, 2026

Copy link
Copy Markdown
Contributor

Purpose

Related issue: #3273

The Spark 3 CI lanes currently run the same 264-test suite for both Scala 2.12 and Scala 2.13. Most of the runtime is spent in lake integration tests, while the Spark 3.4 and 3.5 wrapper modules finish quickly.

Following the CI-stage splitting approach in #3692 and the representative-version coverage strategy described in #3273, this change keeps complete Spark coverage on Scala 2.12 while using Scala 2.13 as a non-lake compatibility lane. This reduces duplicated work and lowers the risk of Spark jobs approaching the CI timeout as more tests are added.

Brief change log

  • Add a suite-level SparkLakeTest ScalaTest tag and apply it to the four Paimon and Iceberg lake suites.
  • Split Scala 2.12 Spark tests into spark3 (214 non-lake tests) and spark3-lake (50 lake tests), which run as independent matrix jobs.
  • Keep spark3-scala213 as a 214-test non-lake compatibility lane.
  • Map spark3-lake to the existing test-spark3 coverage profile.
  • Keep unfiltered local Maven runs unchanged so they continue to discover all 264 tests.

Tests

  • bash -n .github/workflows/stage.sh
  • Verified the generated Maven modules, Scala profiles, coverage profiles, and ScalaTest tag filters for all three Spark stages.
  • Verified ScalaTest discovery counts:
    • spark3: 214 tests
    • spark3-lake: 50 tests
    • spark3-scala213: 214 tests
  • Verified the Scala 2.12 groups sum to the complete 264-test suite.
  • Passed Maven Checkstyle/RAT validation and Spotless checks.
  • Compiled the affected Spark common and test modules for Scala 2.12 and Scala 2.13.

API and Format

No public API or storage format changes.

Documentation

No documentation changes. This change only updates CI configuration and Spark test grouping.

Generative AI disclosure:

  • No generative AI tools used
  • Yes: Codex (OpenAI)

Generated-by: Codex (OpenAI) following the guidelines

@litiliu

litiliu commented Jul 21, 2026

Copy link
Copy Markdown
Contributor Author

@luoyuxia @loserwang1024 PTAL

@litiliu
litiliu force-pushed the codex/split-spark-ci-tests branch from c7fc6fe to d4c79e3 Compare July 22, 2026 02:18
@litiliu

litiliu commented Jul 22, 2026

Copy link
Copy Markdown
Contributor Author

CI / Java 11 / spark3 (pull_request)Successful in 27m
CI / Java 11 / spark3-lake (pull_request)
CI / Java 11 / spark3-lake (pull_request)Successful in 34m
CI / Java 11 / spark3-scala213 (pull_request)
CI / Java 11 / spark3-scala213 (pull_request)Successful in 26m

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant