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" />