ci(build): switch CI from JDK 17 to GraalVM JDK 25#16
Merged
bluestreak01 merged 1 commit intomainfrom Apr 25, 2026
Merged
Conversation
- ci/setup.yaml: replace pre-installed JDK 17 task with platform-conditional GraalVM JDK 25 download for Linux, macOS (x64+arm64) and Windows; sets JAVA_HOME and prepends bin so existing Maven@3 steps using jdkVersionOption: "default" pick it up. - ci/run_tests_pipeline.yaml: refactor the Javadoc job to consume the setup.yaml template instead of inlining its own JavaToolInstaller. - .github/workflows/rebuild_native_libs.yml: linux x86_64 and aarch64 native-build jobs now fetch GraalVM JDK 25 for jni.h; the Windows cross-compile job also installs GraalVM JDK 25 and now pulls Windows jni_md.h from openjdk/jdk25u. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
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.
Summary
Bumps the JDK used across all CI jobs from Temurin JDK 17 to Oracle GraalVM JDK 25 (latest). The Java source/target level (
<javac.target>11</javac.target>) is unchanged — only the build/test toolchain moves.Files changed
ci/setup.yaml— replaces theJavaToolInstaller@0step with platform-conditional GraalVM 25 download steps for Linux, macOS (x64 + arm64) and Windows. SetsJAVA_HOMEvia##vso[task.setvariable]and prependsbintoPATH, so existingMaven@3steps usingjdkVersionOption: "default"pick it up.ci/run_tests_pipeline.yaml— the Javadoc validation job now consumes thesetup.yamltemplate instead of inlining its ownJavaToolInstaller. AddedjdkArch/imageNamejob variables so the template's conditions resolve..github/workflows/rebuild_native_libs.yml— both Linux native-build jobs (x86_64 manylinux2014, aarch64 manylinux_2_28) now fetch GraalVM 25 forjni.h. The Windows cross-compile job also installs GraalVM 25 and now pulls Windows-specificjni_md.hfromopenjdk/jdk25u. The macOS native-build jobs were left alone — they never installed a JDK explicitly and rely on the runner's pre-installed one.Notes / trade-offs
…/graalvm/25/latest/…pattern, which is mutable. If you'd prefer reproducible pins, swap in versioned URLs likehttps://download.oracle.com/graalvm/25/archive/graalvm-jdk-25.0.x_<os>-<arch>_bin.<ext>.graalvm/graalvm-ce-buildsGitHub releases.manylinux2014(CentOS 7 / glibc 2.17) is older than what Oracle GraalVM 25 binaries officially target. This workflow only readsinclude/jni.hfrom the tarball — it never executes Java — so extraction is what matters and that works regardless of glibc.Test plan
BuildAndTeststage passes on linux-x64, mac-aarch64, mac-x64, windows-msvc-2022-x64Validate(Javadoc) job passesCoveragestage passesrebuild_native_libs.ymlon this branch and confirm linux-x86_64, linux-aarch64 and windows cross-compile jobs all build successfully🤖 Generated with Claude Code