From ecf11bc7145407ca045847d1336b8a8a26c1293b Mon Sep 17 00:00:00 2001
From: Rahul Mohanan <121536011+MohananRahul@users.noreply.github.com>
Date: Thu, 7 Dec 2023 14:28:18 +0530
Subject: [PATCH] YBuild Update for Java 22 (#1644)
---
JenkinsJobs/YBuilds/Y_build.groovy | 7 +-
.../YBuilds/Y_unit_cen64_gtk3_java22.groovy | 168 ++++++++++++++++++
cje-production/P-build/buildproperties.txt | 28 +--
.../P-build/mb300_gatherEclipseParts.sh | 2 +-
cje-production/Y-build/buildproperties.txt | 2 +-
cje-production/Y-build/publish.xml | 2 +-
cje-production/Y-build/testConfigs.php | 2 +-
.../streams/repositories_java21patch.txt | 3 -
...ies_java21.txt => repositories_java22.txt} | 6 +-
.../streams/repositories_java22patch.txt | 3 +
10 files changed, 196 insertions(+), 27 deletions(-)
create mode 100644 JenkinsJobs/YBuilds/Y_unit_cen64_gtk3_java22.groovy
delete mode 100644 cje-production/streams/repositories_java21patch.txt
rename cje-production/streams/{repositories_java21.txt => repositories_java22.txt} (85%)
create mode 100644 cje-production/streams/repositories_java22patch.txt
diff --git a/JenkinsJobs/YBuilds/Y_build.groovy b/JenkinsJobs/YBuilds/Y_build.groovy
index 528c12b44d2..ca98e29faa4 100644
--- a/JenkinsJobs/YBuilds/Y_build.groovy
+++ b/JenkinsJobs/YBuilds/Y_build.groovy
@@ -17,7 +17,7 @@ for (STREAM in STREAMS){
# format: Minute Hour Day Month Day of the week (0-7)
#Daily Y-build
-#0 10 * * *
+0 10 * * *
#milestone week
#0 6 * * 2
#0 6 * * 4
@@ -517,6 +517,7 @@ spec:
container('jnlp') {
build job: 'YPBuilds/ep''' + MAJOR + MINOR + '''Y-unit-cen64-gtk3-java17', parameters: [string(name: 'buildId', value: "${env.BUILD_IID.trim()}")], wait: false
build job: 'YPBuilds/ep''' + MAJOR + MINOR + '''Y-unit-cen64-gtk3-java21', parameters: [string(name: 'buildId', value: "${env.BUILD_IID.trim()}")], wait: false
+ build job: 'YPBuilds/ep''' + MAJOR + MINOR + '''Y-unit-cen64-gtk3-java22', parameters: [string(name: 'buildId', value: "${env.BUILD_IID.trim()}")], wait: false
build job: 'YPBuilds/ep''' + MAJOR + MINOR + '''Y-unit-macM1-java17', parameters: [string(name: 'buildId', value: "${env.BUILD_IID.trim()}")], wait: false
build job: 'YPBuilds/ep''' + MAJOR + MINOR + '''Y-unit-mac64-java17', parameters: [string(name: 'buildId', value: "${env.BUILD_IID.trim()}")], wait: false
build job: 'Start-smoke-tests', parameters: [string(name: 'buildId', value: "${env.BUILD_IID.trim()}")], wait: false
@@ -528,13 +529,13 @@ spec:
failure {
emailext body: "Please go to ${BUILD_URL}console and check the build failure.
",
subject: "${env.BUILD_VERSION} Y-Build: ${env.BUILD_IID.trim()} - BUILD FAILED",
- to: "rahul.mohanan@ibm.com jarthana@in.ibm.com Sheena.Sheena@ibm.com alshama.m.s@ibm.com elsa.zacharia@ibm.com suby.surendran@ibm.com gpunathi@in.ibm.com sravankumarl@in.ibm.com kalyan_prasad@in.ibm.com lshanmug@in.ibm.com manoj.palat@in.ibm.com niraj.modi@in.ibm.com noopur_gupta@in.ibm.com sarika.sinha@in.ibm.com vikas.chandra@in.ibm.com akurtakov@gmail.com",
+ to: "rahul.mohanan@ibm.com jarthana@in.ibm.com alshama.m.s@ibm.com elsa.zacharia@ibm.com suby.surendran@ibm.com gpunathi@in.ibm.com sravankumarl@in.ibm.com manoj.palat@in.ibm.com noopur_gupta@in.ibm.com akurtakov@gmail.com",
from:"genie.releng@eclipse.org"
}
success {
emailext body: "Eclipse downloads:
https://download.eclipse.org/eclipse/downloads/drops4/${env.BUILD_IID.trim()}
Build logs and/or test results (eventually):
https://download.eclipse.org/eclipse/downloads/drops4/${env.BUILD_IID.trim()}/testResults.php
${env.POM_UPDATES_BODY.trim()}${env.COMPARATOR_ERRORS_BODY.trim()}Software site repository:
https://download.eclipse.org/eclipse/updates/${env.RELEASE_VER.trim()}-Y-builds
Specific (simple) site repository:
https://download.eclipse.org/eclipse/updates/${env.RELEASE_VER.trim()}-Y-builds/${env.BUILD_IID.trim()}
Equinox downloads:
https://download.eclipse.org/equinox/drops/${env.BUILD_IID.trim()}
",
subject: "${env.BUILD_VERSION} Y-Build: ${env.BUILD_IID.trim()} ${env.POM_UPDATES_SUBJECT.trim()} ${env.COMPARATOR_ERRORS_SUBJECT.trim()}",
- to: "rahul.mohanan@ibm.com jarthana@in.ibm.com Sheena.Sheena@ibm.com alshama.m.s@ibm.com elsa.zacharia@ibm.com suby.surendran@ibm.com gpunathi@in.ibm.com sravankumarl@in.ibm.com kalyan_prasad@in.ibm.com lshanmug@in.ibm.com manoj.palat@in.ibm.com niraj.modi@in.ibm.com noopur_gupta@in.ibm.com sarika.sinha@in.ibm.com vikas.chandra@in.ibm.com akurtakov@gmail.com",
+ to: "rahul.mohanan@ibm.com jarthana@in.ibm.com alshama.m.s@ibm.com elsa.zacharia@ibm.com suby.surendran@ibm.com gpunathi@in.ibm.com sravankumarl@in.ibm.com manoj.palat@in.ibm.com noopur_gupta@in.ibm.com akurtakov@gmail.com",
from:"genie.releng@eclipse.org"
}
}
diff --git a/JenkinsJobs/YBuilds/Y_unit_cen64_gtk3_java22.groovy b/JenkinsJobs/YBuilds/Y_unit_cen64_gtk3_java22.groovy
new file mode 100644
index 00000000000..a708a36c53c
--- /dev/null
+++ b/JenkinsJobs/YBuilds/Y_unit_cen64_gtk3_java22.groovy
@@ -0,0 +1,168 @@
+def config = new groovy.json.JsonSlurper().parseText(readFileFromWorkspace('JenkinsJobs/JobDSL.json'))
+def STREAMS = config.Streams
+
+for (STREAM in STREAMS){
+ def MAJOR = STREAM.split('\\.')[0]
+ def MINOR = STREAM.split('\\.')[1]
+
+ pipelineJob('YPBuilds/ep' + MAJOR + MINOR + 'Y-unit-cen64-gtk3-java22'){
+
+ logRotator {
+ numToKeep(5)
+ }
+
+ parameters {
+ stringParam('buildId', null, null)
+ stringParam('javaDownload', 'https://download.java.net/java/early_access/jdk22/26/GPL/openjdk-22-ea+26_linux-x64_bin.tar.gz', null)
+ }
+
+ definition {
+ cps {
+ sandbox()
+ script('''
+pipeline {
+ options {
+ timeout(time: 600, unit: 'MINUTES')
+ timestamps()
+ buildDiscarder(logRotator(numToKeepStr:'5'))
+ }
+ agent {
+ kubernetes {
+ label 'centos-unitpod22'
+ defaultContainer 'custom'
+ yaml """
+apiVersion: v1
+kind: Pod
+spec:
+ containers:
+ - name: "jnlp"
+ resources:
+ limits:
+ memory: "2048Mi"
+ cpu: "2000m"
+ requests:
+ memory: "512Mi"
+ cpu: "1000m"
+ - name: "custom"
+ image: "eclipse/platformreleng-centos-gtk3-metacity:8"
+ imagePullPolicy: "Always"
+ resources:
+ limits:
+ memory: "4096Mi"
+ cpu: "1000m"
+ requests:
+ # memory needs to be at least 1024Mi, see https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/issues/2478
+ memory: "1024Mi"
+ cpu: "1000m"
+ securityContext:
+ privileged: false
+ tty: true
+ command:
+ - cat
+ volumeMounts:
+ - mountPath: "/opt/tools"
+ name: "volume-0"
+ readOnly: false
+ workingDir: "/home/jenkins/agent"
+ nodeSelector: {}
+ restartPolicy: "Never"
+ volumes:
+ - name: "volume-0"
+ persistentVolumeClaim:
+ claimName: "tools-claim-jiro-releng"
+ readOnly: true
+ - configMap:
+ name: "known-hosts"
+ name: "volume-1"
+ - emptyDir:
+ medium: ""
+ name: "workspace-volume"
+ - emptyDir:
+ medium: ""
+ name: "volume-3"
+"""
+ }
+ }
+
+ stages {
+ stage('Run tests'){
+ steps {
+ container ('custom'){
+ wrap([$class: 'Xvnc', takeScreenshot: false, useXauthority: true]) {
+ withEnv(["JAVA_HOME_NEW=${ tool 'openjdk-jdk18-latest' }"]) {
+ withAnt(installation: 'apache-ant-latest') {
+ sh \'\'\'#!/bin/bash -x
+
+ buildId=$(echo $buildId|tr -d ' ')
+ RAW_DATE_START="$(date +%s )"
+
+ export LANG=en_US.UTF-8
+ cat /etc/*release
+ echo -e "\\n\\tRAW Date Start: ${RAW_DATE_START} \\n"
+ echo -e "\\n\\t whoami: $( whoami )\\n"
+ echo -e "\\n\\t uname -a: $(uname -a)\\n"
+
+ # 0002 is often the default for shell users, but it is not when ran from
+ # a cron job, so we set it explicitly, to be sure of value, so releng group has write access to anything
+ # we create on shared area.
+ oldumask=$(umask)
+ umask 0002
+
+ echo "umask explicitly set to 0002, old value was $oldumask"
+
+ # we want java.io.tmpdir to be in $WORKSPACE, but must already exist, for Java to use it.
+ mkdir -p ${WORKSPACE}/tmp
+
+ wget -O ${WORKSPACE}/getEBuilder.xml --no-verbose --no-check-certificate https://download.eclipse.org/eclipse/relengScripts/production/testScripts/hudsonBootstrap/getEBuilder.xml 2>&1
+ wget -O ${WORKSPACE}/buildproperties.shsource --no-check-certificate https://download.eclipse.org/eclipse/downloads/drops4/${buildId}/buildproperties.shsource
+ cat ${WORKSPACE}/buildproperties.shsource
+ source ${WORKSPACE}/buildproperties.shsource
+
+ set -x
+ mkdir -p ${WORKSPACE}/java
+ pushd ${WORKSPACE}/java
+ wget -O jdk.tar.gz --no-verbose ${javaDownload}
+ tar xzf jdk.tar.gz
+ rm jdk.tar.gz
+ export JAVA_HOME_NEW=$(pwd)/$(ls)
+ popd
+ set +x
+
+ export PATH=${JAVA_HOME_NEW}/bin:${ANT_HOME}/bin:${PATH}
+
+ echo JAVA_HOME: $JAVA_HOME
+ export JAVA_HOME=$JAVA_HOME_NEW
+ echo ANT_HOME: $ANT_HOME
+ echo PATH: $PATH
+ export ANT_OPTS="${ANT_OPTS} -Djava.io.tmpdir=${WORKSPACE}/tmp -Djava.security.manager=allow"
+
+ env 1>envVars.txt 2>&1
+ ant -diagnostics 1>antDiagnostics.txt 2>&1
+ java -XshowSettings -version 1>javaSettings.txt 2>&1
+
+ ant -f getEBuilder.xml -Djava.io.tmpdir=${WORKSPACE}/tmp -DbuildId=$buildId -DeclipseStream=$STREAM -DEBUILDER_HASH=${EBUILDER_HASH} -DdownloadURL=https://download.eclipse.org/eclipse/downloads/drops4/${buildId} -Dosgi.os=linux -Dosgi.ws=gtk -Dosgi.arch=x86_64 -DtestSuite=all -Djvm=${JAVA_HOME}/bin/java
+
+ RAW_DATE_END="$(date +%s )"
+
+ echo -e "\\n\\tRAW Date End: ${RAW_DATE_END} \\n"
+
+ TOTAL_TIME=$((${RAW_DATE_END} - ${RAW_DATE_START}))
+
+ echo -e "\\n\\tTotal elapsed time: ${TOTAL_TIME} \\n"
+ \'\'\'
+ }
+ }
+ }
+ }
+ archiveArtifacts '**/eclipse-testing/results/**, **/eclipse-testing/directorLogs/**, *.properties, *.txt'
+ junit keepLongStdio: true, testResults: '**/eclipse-testing/results/xml/*.xml'
+ build job: 'YPBuilds/ep-collectYbuildResults', parameters: [string(name: 'triggeringJob', value: "${JOB_BASE_NAME}"), string(name: 'buildURL', value: "${BUILD_URL}"), string(name: 'buildID', value: "${params.buildId}")], wait: false
+ }
+ }
+ }
+}
+ ''')
+ }
+ }
+ }
+}
diff --git a/cje-production/P-build/buildproperties.txt b/cje-production/P-build/buildproperties.txt
index 6137aff17b6..7db5339d5ee 100644
--- a/cje-production/P-build/buildproperties.txt
+++ b/cje-production/P-build/buildproperties.txt
@@ -17,15 +17,15 @@
# CJE build variables
BRANCH="master"
-PATCH_OR_BRANCH_LABEL="java21patch"
-PATCH_BUILD="java21patch"
-BUILD_TYPE_NAME="Beta Java 21"
+PATCH_OR_BRANCH_LABEL="java22patch"
+PATCH_BUILD="java22patch"
+BUILD_TYPE_NAME="Beta Java 22"
BUILD_TYPE="P"
TESTED_BUILD_TYPE="P"
-RELEASE_VER="4.30"
-STREAM="4.30.0"
+RELEASE_VER="4.31"
+STREAM="4.31.0"
STREAMMajor="4"
-STREAMMinor="29"
+STREAMMinor="31"
STREAMService="0"
GIT_ROOT="git@github.com:"
AGG_REPO="eclipse-platform/eclipse.platform.releng.aggregator.git"
@@ -39,8 +39,8 @@ BUILD_TO_COMPARE_SITE="ftp.osuosl.org/pub/eclipse/eclipse/updates"
LOCAL_REPO="localMavenRepo"
# Base builder parameters
-BASEBUILDER_TAG="4.28"
-API_PREV_REF_LABEL="4.28"
+BASEBUILDER_TAG="4.30"
+API_PREV_REF_LABEL="4.30"
#API_FREEZE_REF_LABEL="4.28RC1"
API_FREEZE_REF_LABEL=""
# Change to appropriate versions and uncomment when entering API freeze
@@ -48,17 +48,17 @@ API_FREEZE_REF_LABEL=""
# Otherwise set to a blank space
FREEZE_PARAMS=" "
-PREVIOUS_RELEASE_VER="4.28"
-PREVIOUS_RELEASE_REPO_ID="4.28"
+PREVIOUS_RELEASE_VER="4.30"
+PREVIOUS_RELEASE_REPO_ID="4.30"
#build id for getting repo
-BASEBUILD_ID="R-4.28-202306050440"
+BASEBUILD_ID="R-4.30-202312010110"
#release id for downloading eclipse
-PREVIOUS_RELEASE_ID="R-4.28-202306050440"
+PREVIOUS_RELEASE_ID="R-4.30-202312010110"
BUILDTOOLS_REPO="https://download.eclipse.org/eclipse/updates/buildtools/"
-WEBTOOLS_REPO="https://download.eclipse.org/webtools/downloads/drops/R3.27.0/R-3.27.0-20220829002010/repositoryunittests/"
+WEBTOOLS_REPO="https://download.eclipse.org/webtools/downloads/drops/R3.31.0/R-3.31.0-20230903090456/repositoryunittests/"
BASEBUILDER_DIR="tmp/org.eclipse.releng.basebuilder"
-ECLIPSE_RUN_REPO="https://download.eclipse.org/eclipse/updates/4.29-I-builds/"
+ECLIPSE_RUN_REPO="https://download.eclipse.org/eclipse/updates/4.31-I-builds/"
#Maven parameters
MAVEN_OPTS="-Xmx6G"
diff --git a/cje-production/P-build/mb300_gatherEclipseParts.sh b/cje-production/P-build/mb300_gatherEclipseParts.sh
index eb11c99f127..c60090b60ed 100755
--- a/cje-production/P-build/mb300_gatherEclipseParts.sh
+++ b/cje-production/P-build/mb300_gatherEclipseParts.sh
@@ -32,7 +32,7 @@ cp $CJE_ROOT/$AGG_DIR/eclipse-platform-parent/target/mavenproperties.properties
# gather repo
echo $PATCH_BUILD
-PATCH_BUILD_GENERIC=java21patch
+PATCH_BUILD_GENERIC=java22patch
REPO_DIR=$ECLIPSE_BUILDER_DIR/$PATCH_BUILD/eclipse.releng.repository.$PATCH_BUILD_GENERIC/target/repository
if [ -d $REPO_DIR ]; then
diff --git a/cje-production/Y-build/buildproperties.txt b/cje-production/Y-build/buildproperties.txt
index 46ede163060..0f3d5d25664 100644
--- a/cje-production/Y-build/buildproperties.txt
+++ b/cje-production/Y-build/buildproperties.txt
@@ -55,7 +55,7 @@ BASEBUILD_ID="R-4.30-202312010110"
PREVIOUS_RELEASE_ID="R-4.30-202312010110"
BUILDTOOLS_REPO="https://download.eclipse.org/eclipse/updates/buildtools/"
-WEBTOOLS_REPO="https://download.eclipse.org/webtools/downloads/drops/R3.22.0/R-3.22.0-20210612170523/repositoryunittests/"
+WEBTOOLS_REPO="https://download.eclipse.org/webtools/downloads/drops/R3.31.0/R-3.31.0-20230903090456/repositoryunittests/"
BASEBUILDER_DIR="tmp/org.eclipse.releng.basebuilder"
ECLIPSE_RUN_REPO="https://download.eclipse.org/eclipse/updates/4.31-I-builds/"
diff --git a/cje-production/Y-build/publish.xml b/cje-production/Y-build/publish.xml
index 3c1de6d92af..88014579efd 100644
--- a/cje-production/Y-build/publish.xml
+++ b/cje-production/Y-build/publish.xml
@@ -184,7 +184,7 @@
+ value="ep${eclipseStreamMajor}${eclipseStreamMinor}${buildType}-unit-mac64-java17_macosx.cocoa.x86_64_17,ep${eclipseStreamMajor}${eclipseStreamMinor}${buildType}-unit-macM1-java17_macosx.cocoa.aarch64_17,ep${eclipseStreamMajor}${eclipseStreamMinor}${buildType}-unit-win32-java17_win32.win32.x86_64_17,ep${eclipseStreamMajor}${eclipseStreamMinor}${buildType}-unit-cen64-gtk3-java17_linux.gtk.x86_64_17,ep${eclipseStreamMajor}${eclipseStreamMinor}${buildType}-unit-cen64-gtk3-java21_linux.gtk.x86_64_21,ep${eclipseStreamMajor}${eclipseStreamMinor}${buildType}-unit-cen64-gtk3-java22_linux.gtk.x86_64_22" />