Skip to content

Commit b4e997b

Browse files
committed
Compile main code with JDK 17 on JDK 17 CI runs
1 parent d77577b commit b4e997b

File tree

1 file changed

+18
-4
lines changed

1 file changed

+18
-4
lines changed

Jenkinsfile

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,9 @@ stage('Configure') {
4040
// Don't build with HANA by default, but only do it nightly until we receive a 3rd instance
4141
// new BuildEnvironment( dbName: 'hana_cloud', dbLockableResource: 'hana-cloud', dbLockResourceAsHost: true ),
4242
new BuildEnvironment( node: 's390x' ),
43-
// We build with JDK 21, but produce Java 17 bytecode, so we test with JDK 17, to be sure everything works.
44-
new BuildEnvironment( testJdkVersion: '17' ),
43+
// We generally build with JDK 21, but our baseline is Java 17, so we test with JDK 17, to be sure everything works.
44+
// Here we even compile the main code with JDK 17, to be sure no JDK 18+ classes are depended on.
45+
new BuildEnvironment( mainJdkVersion: '17', testJdkVersion: '17' ),
4546
// We want to enable preview features when testing newer builds of OpenJDK:
4647
// even if we don't use these features, just enabling them can cause side effects
4748
// and it's useful to test that.
@@ -109,6 +110,10 @@ stage('Build') {
109110
state[buildEnv.tag] = [:]
110111
executions.put(buildEnv.tag, {
111112
runBuildOnNode(buildEnv.node ?: NODE_PATTERN_BASE) {
113+
def mainJavaHome
114+
if ( buildEnv.mainJdkVersion ) {
115+
mainJavaHome = tool(name: "OpenJDK ${buildEnv.mainJdkVersion} Latest", type: 'jdk')
116+
}
112117
def testJavaHome
113118
if ( buildEnv.testJdkVersion ) {
114119
testJavaHome = tool(name: "OpenJDK ${buildEnv.testJdkVersion} Latest", type: 'jdk')
@@ -118,9 +123,17 @@ stage('Build') {
118123
// See https://github.com/jenkinsci/pipeline-plugin/blob/master/TUTORIAL.md
119124
withEnv(["JAVA_HOME=${javaHome}", "PATH+JAVA=${javaHome}/bin"]) {
120125
state[buildEnv.tag]['additionalOptions'] = '-PmavenMirror=nexus-load-balancer-c4cf05fd92f43ef8.elb.us-east-1.amazonaws.com'
121-
if ( testJavaHome ) {
126+
if ( buildEnv.mainJdkVersion ) {
127+
state[buildEnv.tag]['additionalOptions'] = state[buildEnv.tag]['additionalOptions'] +
128+
" -Pmain.jdk.version=${buildEnv.mainJdkVersion}"
129+
}
130+
if ( buildEnv.testJdkVersion ) {
131+
state[buildEnv.tag]['additionalOptions'] = state[buildEnv.tag]['additionalOptions'] +
132+
" -Ptest.jdk.version=${buildEnv.testJdkVersion}"
133+
}
134+
if ( buildEnv.mainJdkVersion || buildEnv.testJdkVersion ) {
122135
state[buildEnv.tag]['additionalOptions'] = state[buildEnv.tag]['additionalOptions'] +
123-
" -Ptest.jdk.version=${buildEnv.testJdkVersion} -Porg.gradle.java.installations.paths=${javaHome},${testJavaHome}"
136+
" -Porg.gradle.java.installations.paths=${[javaHome, mainJavaHome, testJavaHome].findAll { it != null }.join(',')}"
124137
}
125138
if ( buildEnv.testJdkLauncherArgs ) {
126139
state[buildEnv.tag]['additionalOptions'] = state[buildEnv.tag]['additionalOptions'] +
@@ -210,6 +223,7 @@ stage('Build') {
210223
// Job-specific helpers
211224

212225
class BuildEnvironment {
226+
String mainJdkVersion
213227
String testJdkVersion
214228
String testJdkLauncherArgs
215229
String dbName = 'h2'

0 commit comments

Comments
 (0)