Update GHA + Jenkins workflows to work with Java 21#918
Merged
jonahgraham merged 7 commits intomainfrom Nov 14, 2025
Merged
Conversation
- update URLs to reference documentation - test on MacOS ARM and Intel - update versions of github actions (checkout, setup-java) - parameterize validate job so that in case of errors an SSH debug session can be opened Co-authored-by: Jonah Graham <jonah@kichwacoders.com>
…and 21 - on CI build with Java 21, test with 11, 17 and 21 - on Dev machine, build can also be 17 - Decouple JDK to run Gradle from the JDK used to compile/test. - Use Java toolchains to select JDK 11 for compilation and test - Set javac --release 11 for consistent API/bytecode. - Launch Test tasks with the JDK 11 toolchain for non-xtend cases - Launch test tasks with JDK 17, 21 for all tests - Update Tycho to newer version that works with Java 21 Co-authored-by: Jonah Graham <jonah@kichwacoders.com>
The results are published, but can be seen in build summary.
For some of the trivial use cases of xtend change them to pure Java. This allows more of the tests to build and run with Java 11 as xtend now requires Java 17.
xtend converts `.last` to `List.getLast()` if the JVM it is running under has it, so the generated java files will use `List.getLast()` even though we want to target older JVM. `List.getLast()` was introduced in Java 21, which is newer than our supported version of Java11. This is the workaround recommended in eclipse-xtext/xtext#3535
Contributor
Author
|
This ran on Jenkins too https://ci.eclipse.org/lsp4j/job/lsp4j-multi-build/job/jonah%252Fgha/ which publishes to https://download.eclipse.org/lsp4j/builds/jonah/gha/ @sebthom Do you want to have a review of this? |
Contributor
Author
|
xtend dependent tests are run 2 x (Java 17 and Java 21) and non-dependent run on Java 11 too (3x) For example: JsonParseTest.xtend runs each test 2x results NullResponseTest.java runs each test 3x results |
Contributor
|
LGTM, nice to see the matrix builds. |
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.
This replaces #900 - instead of updating #900, this is a new PR that is pushed to origin so that full Jenkins build and test run, including signing/testing/etc
Full details in individual commits, at the high level: