Conversation
…the aggregate result jobs - Fold the `client` Backend IT shard into `others`. Both are short, and the merged shard still finishes before the slowest build shard, so PR feedback time is unchanged while each backend runs one job less. - Remove `build-result` and `BackendIT-result`. No branch protection rule requires them, so they only added checks.
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.
What changes were proposed in this pull request?
This pull request splits
coretesting into explicit unit, H2, MySQL, and PostgreSQL lanes so each lane has independent ownership, results, timing evidence, and coverage input.It:
:core:testbehavior for local compatibility;Because #13495 is still open, this pull request temporarily contains its exact head commits. After #13495 merges, the branch will be rebased so this pull request contains only the #13516 delta.
Why are the changes needed?
The existing
:core:testtask combines unit tests with three database backends. That makes ownership, timing, failures, and coverage inputs difficult to inspect independently, and it prevents safe follow-up concurrency work.This change establishes explicit boundaries and fail-closed equivalence checks before further database-test optimization.
Fix: #13516
Related to: #13515, #13495, #13471, and #12584.
Does this PR introduce any user-facing change?
No. There are no production API, storage-format, or user-facing configuration changes.
The new
gravitino.core.test.backendsystem property and Gradle tasks are test-only interfaces. Legacy:core:testremains available.How was this patch tested?
Completed locally:
python3 -B -m unittest discover -s dev/ci/tests -p 'test_core_test_identity.py'— 9 tests passed../gradlew :core:spotlessCheck :core:compileTestJava -PskipWeb=true -PskipDockerTests=true./gradlew :core:coreUnitTest -PskipWeb=true -PskipDockerTests=true— 1,961 tests passed../gradlew :core:coreH2Test -PskipWeb=true -PskipDockerTests=true— 519 tests passed../gradlew rat -PskipWeb=truebash -n dev/ci/test-shards.shactionlint .github/workflows/build.ymlupstream/mainand the exact [#13459] improvement(ci): Split build and Backend IT into sharded sub-jobs #13495 head, followed by compilation and range-diff verification.Appendix: local proof data
MySQL evidence collected so far:
coreMySQLTestlane: 519 tests executed; 518 passed and one failed during unchanged fixture teardown after its functional assertions had passed.CommunicationsException/No route to hostwhile dropping tables. Source and runtime inspection confirmed that the lane is serial and the affected test and teardown ordering are unchanged by this pull request.BUILD SUCCESSFUL).PostgreSQL evidence:
corePostgreSQLTestlane: 519 tests executed; 517 passed, 2 skipped, and zero failed.22844eb5cc3bf4e6a0d85f494bb0f4a4510e2be6a3451213ac2b5f32f382f035, matching the H2 lane.TBD — four-lane identity reconciliation, legacy partition comparison, and combined JaCoCo evidence will be added when available.
Timing evidence
The comparable baseline is the successful
#13495
build (17, core)job.:core:testtaskThe #13517 workflows stopped during startup because of the ASF action allowlist, so a comparable after-CI measurement does not exist yet.
Local split-lane evidence:
The focused rerun of the MySQL teardown case passed both invocations.
Using the four local JUnit durations, the modeled serial total is 1h48m04.988s and the ideal concurrent critical path is 1h09m08.839s. This represents 38m56.149s, or 36.0%, of idealized local elapsed-time reduction—a 1.56× speedup. This is parallelization headroom, not an observed CI before/after result.