Try fixing JDK latest builds

This commit is contained in:
Christian Beikov 2022-04-07 21:17:01 +02:00
parent 776bc1d0aa
commit 2efd56e4d8
1 changed files with 36 additions and 25 deletions

61
Jenkinsfile vendored
View File

@ -39,9 +39,9 @@ stage('Configure') {
buildEnv(defaultJdk, 'tidb', 'tidb', 'tidb_hibernate@pingcap.com'),
// Disable EDB for now as the image is not available anymore
// buildEnv(defaultJdk, 'edb')
buildEnv('17', 'h2'),
buildEnv('18', 'h2'),
buildEnv('19', 'h2'),
jdkBuildEnv(defaultJdk, '17', 'yoann@hibernate.org sanne@hibernate.org'),
jdkBuildEnv(defaultJdk, '18', 'yoann@hibernate.org sanne@hibernate.org'),
jdkBuildEnv(defaultJdk, '19', 'yoann@hibernate.org sanne@hibernate.org'),
];
helper.configure {
@ -76,14 +76,21 @@ stage('Build') {
Map<String, Closure> executions = [:]
environments.each { BuildEnvironment buildEnv ->
// Don't build environments for newer JDKs when this is a PR
if ( buildEnv.getVersion() != defaultJdk && helper.scmSource.pullRequest ) {
return
def isNewerJdk = buildEnv.getVersion() != defaultJdk
if ( isNewerJdk ) {
if ( helper.scmSource.pullRequest ) {
return
}
}
executions.put(buildEnv.tag, {
runBuildOnNode(buildEnv.node) {
// Use withEnv instead of setting env directly, as that is global!
// See https://github.com/jenkinsci/pipeline-plugin/blob/master/TUTORIAL.md
withEnv(["JAVA_HOME=${tool buildEnv.buildJdkTool}", "PATH+JAVA=${tool buildEnv.buildJdkTool}/bin"]) {
withEnv(["JAVA_HOME=${tool buildEnv.buildJdkTool}", "PATH+JAVA=${tool buildEnv.buildJdkTool}/bin", "TEST_JAVA_HOME=${tool buildEnv.testJdkTool}"]) {
def additionalOptions = ""
if ( isNewerJdk ) {
additionalOptions = " -Ptest.jdk.version=${buildEnv.getTestVersion()} -Porg.gradle.java.installations.paths=${JAVA_HOME},${TEST_JAVA_HOME}"
}
def containerName = null
stage('Checkout') {
checkout scm
@ -164,35 +171,35 @@ stage('Build') {
case "h2":
case "derby":
case "hsqldb":
runTest("-Pdb=${buildEnv.dbName}")
runTest("-Pdb=${buildEnv.dbName}${additionalOptions}")
break;
case "mysql8":
runTest("-Pdb=mysql_ci")
runTest("-Pdb=mysql_ci${additionalOptions}")
break;
case "tidb":
runTest("-Pdb=tidb -DdbHost=localhost:4000", 'TIDB')
runTest("-Pdb=tidb -DdbHost=localhost:4000${additionalOptions}", 'TIDB')
break;
case "postgresql_9_5":
case "postgresql_13":
runTest("-Pdb=pgsql_ci")
runTest("-Pdb=pgsql_ci${additionalOptions}")
break;
case "oracle":
runTest("-Pdb=oracle_ci -PexcludeTests=**.LockTest.testQueryTimeout*")
runTest("-Pdb=oracle_ci -PexcludeTests=**.LockTest.testQueryTimeout*${additionalOptions}")
break;
case "oracle_ee":
runTest("-Pdb=oracle_jenkins", 'ORACLE_RDS')
runTest("-Pdb=oracle_jenkins${additionalOptions}", 'ORACLE_RDS')
break;
case "hana":
runTest("-Pdb=hana_jenkins", 'HANA')
runTest("-Pdb=hana_jenkins${additionalOptions}", 'HANA')
break;
case "edb":
runTest("-Pdb=edb_ci -DdbHost=localhost:5433")
runTest("-Pdb=edb_ci -DdbHost=localhost:5433${additionalOptions}")
break;
case "s390x":
runTest("-Pdb=h2")
runTest("-Pdb=h2${additionalOptions}")
break;
default:
runTest("-Pdb=${buildEnv.dbName}_ci")
runTest("-Pdb=${buildEnv.dbName}_ci${additionalOptions}")
break;
}
}
@ -260,40 +267,44 @@ stage('Build') {
// Job-specific helpers
BuildEnvironment buildEnv(String version, String dbName) {
return new BuildEnvironment( version, dbName, NODE_PATTERN_BASE, null );
return new BuildEnvironment( version, version, dbName, NODE_PATTERN_BASE, null );
}
BuildEnvironment buildEnv(String version, String dbName, String node) {
return new BuildEnvironment( version, dbName, node, null );
return new BuildEnvironment( version, version, dbName, node, null );
}
BuildEnvironment buildEnv(String version, String dbName, String node, String notificationRecipients) {
return new BuildEnvironment( version, dbName, node, notificationRecipients );
return new BuildEnvironment( version, version, dbName, node, notificationRecipients );
}
BuildEnvironment jdkBuildEnv(String version, String testVersion, String notificationRecipients) {
return new BuildEnvironment( version,testVersion, "h2", NODE_PATTERN_BASE, notificationRecipients );
}
public class BuildEnvironment {
private String version;
private String testVersion;
private String buildJdkTool;
private String testJdkTool;
private String dbName;
private String node;
private String notificationRecipients;
public BuildEnvironment(String version, String dbName, String node, String notificationRecipients) {
public BuildEnvironment(String version, String testVersion, String dbName, String node, String notificationRecipients) {
this.version = version;
this.testVersion = testVersion;
this.dbName = dbName;
this.node = node;
this.notificationRecipients = notificationRecipients;
String buildJdkTool;
String testJdkTool;
buildJdkTool = testJdkTool = "OpenJDK ${version} Latest";
this.buildJdkTool = buildJdkTool;
this.testJdkTool = testJdkTool;
this.buildJdkTool = "OpenJDK ${version} Latest";
this.testJdkTool = "OpenJDK ${testVersion} Latest";
}
String toString() { getTag() }
String getTag() { "jdk-$version-$dbName" }
String getNode() { node }
String getVersion() { version }
String getTestVersion() { testVersion }
String getNotificationRecipients() { notificationRecipients }
}