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 patch lets the explicit
coreH2, MySQL, and PostgreSQL lanes use up to two isolated Gradle test workers while keeping JUnit execution serial inside each worker.It:
maxParallelForksfrom CPU, JVM-visible memory, Gradle worker capacity, concurrently selected database lanes, and a conservative rollout cap;DatabaseTestContextinjection while preserving [#6505] improvement(test): Reuse core database fixtures by test class #13518's class-scoped cleanup, poisoning, rebuild, and fresh-fixture behavior;[CORE-DB-SHARD]telemetry and requires it in each database lane's CI evidence artifact; andAdaptive forks apply only to the explicit database lane tasks. The unit lane and legacy
:core:testbehavior remain unchanged, and JUnit method-level parallelism remains disabled.Why are the changes needed?
#13518 gives each test class an explicit fixture lifecycle, but each database lane still runs in one JVM and leaves available CI capacity unused. Bounded JVM-level concurrency reduces wall time while preserving worker-owned database servers and exact test identities.
This PR is stacked on #13518. It does not introduce connection pooling, shared database servers, namespace sharding, or method-level parallelism.
Fix: #13529
Depends on: #13518
Related to: #13515 and #13517
Does this PR introduce any user-facing change?
No production or runtime user-facing change. Public APIs, runtime configuration, and storage formats are unchanged.
The only new controls are test/CI-only Gradle properties and matching environment variables:
coreDatabaseForks/CORE_DATABASE_FORKScoreDatabaseBuildMemoryReserveMiB/CORE_DATABASE_BUILD_MEMORY_RESERVE_MIBcoreDatabaseForkMemoryOverheadMiB/CORE_DATABASE_FORK_MEMORY_OVERHEAD_MIBHow was this patch tested?
Matched local runs compared #13518 at
095f7d7430f4a8c441ba7c095210fed72045b7c2with this patch at5a51aa804b834b7f198c472ee1f045ebea778b65. The environment was macOS 27.0 arm64, OrbStack, JDK 17, Gradle 8.2, 14 JVM-visible processors, 48 GiB JVM-visible memory, and--max-workers=2; every run used--rerun-tasks.Additional completed checks:
./gradlew -p buildSrc test --rerun-tasks: 36 policy tests passed.:core:coreUnitTest: 1,972 passed and 2 skipped.actionlint .github/workflows/build.yml, Spotless, Kotlin Gradle formatting, RAT, and:core:compileTestJavapassed.python3 -B -m unittest discover -s dev/ci/tests -p 'test_core_test_identity.py': 9 passed.