fix: stabilize required checks and CI runtime - #3264
Merged
Merged
Conversation
- add a fixed memory matrix result gate - share Linux build steps with backend jobs - preserve Java 11 checks during migration - remove Commons from required contexts
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #3264 +/- ##
=========================================
Coverage 41.57% 41.57%
Complexity 7312 7312
=========================================
Files 794 794
Lines 69127 69127
Branches 9258 9258
=========================================
+ Hits 28739 28743 +4
+ Misses 37110 37109 -1
+ Partials 3278 3275 -3 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
- name memory and optional backend jobs explicitly - group the memory tests with their stable result gate - explain shared Linux configuration and migration constraints
- Centralize the project JDK and generate validated test matrices - Fail required and legacy result checks on runtime or test skips - Refresh Actions runtimes and use native Maven dependency caching - Trigger affected workflows when the shared runtime file changes
- Merge the latest RocksDB and JRaft baseline from master - Align the new compatibility job with the shared CI runtime - Refresh comparison and artifact Actions while preserving inputs
MrJs133
approved these changes
Oct 4, 2026
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.
Purpose of the PR
After a Java upgrade, CI reports
build-server (memory, 17)while branch protection still waits forbuild-server (memory, 11). This PR introduces the fixed required checkServer memory tests, so changing the runtime JDK no longer requires renaming the protection context.The preparation still runs on Java 11. A shared runtime file prepares CI for Java 17/21, while temporary result checks retain the current Server/Commons protection names during migration. This PR also refreshes GitHub Actions runtimes and fixes Maven cache initialization. Related: #3261, #3262, #3263.
Main Changes
java-runtimebuild-serverServer memory (Java 11). Keep the job ID for the existing Codecov validator.server-memory-requiredServer memory tests. Pass only when runtime resolution and the entire memory matrix succeed.build-server-backendsbuild-server (memory, 11)andbuild-commons (11)until ASF applies the new protection configuration. Both check the real runtime and matrix results, including failures and skips..asf.yamlrequires the fixed memory gate and removes Commons from required checks. Commons CI continues to run. macOS and RISC-V coverage remain optional.The memory job defines the shared Linux environment and test steps with YAML
&anchors; the backend job reuses them with*aliases. Comments explain the shared configuration, temporary legacy checks and why the result jobs usealways().One runtime setting
.github/workflows/.java-versioncontains11. Change it to17or21to update the standard Server, Commons, PD/Store, dependency and CodeQL jobs. Single-JDK jobs use setup-java's nativejava-version-file; Server/Commons use the reusable reader to construct their matrices. Additional test JDKs can be supplied to that reader asextra-java-versions: '["11", "21"]'; it always includes the configured runtime and removes duplicates.This setting controls the CI runtime, independently of Maven compiler/bytecode settings. No Java source or POM changes are included. RISC-V continues to use its existing SHA-verified Dragonwell 11 artifact: a vendor-specific upgrade must update its archive, URL and checksum together.
The matrix fallback keeps job evaluation valid when the reader fails. It cannot pass the gate: result jobs require both the reader and actual test matrix to succeed, and explicitly fail for cancellation, failure or skips. This also protects the current legacy requirements before ASF applies the fixed context.
Actions and cache maintenance
close-issue-reason: completedinstead of inheriting the newernot_planneddefault.cache: maven. Checkout runs first so dependency files are available when the cache key is computed. Cache Maven dependencies instead of the whole.m2directory; keep downloaded-JDK caching disabled.adoptdistribution identifier with its supportedtemurinsuccessor in dependency CI, retaining Java 11.after/.github/workflows/.java-versionfrom its explicit head checkout. Preserve the before/after revision selection, compatibility commands and artifact paths.Existing build/test commands, conditional test behavior and coverage upload inputs are preserved. Workflows consuming the runtime file include it in their PR path filters. New reader/result jobs have read-only or empty permissions. Cluster Test remains manually disabled. PR concurrency, automatic rerun policy and build/test scope changes are outside this change.
Migration order
Server memory testsand no longer requires the Java 11 Server/Commons contexts.Verifying these changes
Local Actions/YAML validation, runtime/result-check fixtures, coverage configuration validators, Maven formatting and full compilation pass. The synchronized head's live RocksDB compatibility check also passes. Full CI on the latest head must finish before merging. Existing shellcheck warnings in unchanged scripts remain.
References: GitHub's Node 24 migration notice, native Maven caching, YAML anchors and job dependencies with
always().Does this PR potentially affect the following parts?
Documentation Status
Doc - TODO: required documentation is pending; complete it before merging.Doc - Done: documentation is included here or linked below.Doc - No Need: internal CI and branch protection only.