From 173e2969847ee903a55399b1d0b54109cbbb7b50 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=90=D0=BB=D0=B5=D0=BA=D1=81=D0=B0=D0=BD=D0=B4=D1=8A?= =?UTF-8?q?=D1=80=20=D0=9A=D1=83=D1=80=D1=82=D0=B0=D0=BA=D0=BE=D0=B2?= Date: Thu, 4 Apr 2024 21:01:00 +0300 Subject: [PATCH] Run I-build tests on Java 22 on linux --- .../I_unit_cen64_gtk3_java22.groovy | 170 ++++++++++++++++++ JenkinsJobs/Builds/I_build.groovy | 1 + cje-production/scripts/publish.xml | 2 +- .../staticDropFiles/testConfigs.php | 3 +- 4 files changed, 174 insertions(+), 2 deletions(-) create mode 100644 JenkinsJobs/AutomatedTests/I_unit_cen64_gtk3_java22.groovy diff --git a/JenkinsJobs/AutomatedTests/I_unit_cen64_gtk3_java22.groovy b/JenkinsJobs/AutomatedTests/I_unit_cen64_gtk3_java22.groovy new file mode 100644 index 00000000000..0ba061e3066 --- /dev/null +++ b/JenkinsJobs/AutomatedTests/I_unit_cen64_gtk3_java22.groovy @@ -0,0 +1,170 @@ +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('AutomatedTests/ep' + MAJOR + MINOR + 'I-unit-cen64-gtk3-java22'){ + + logRotator { + numToKeep(5) + } + + parameters { + stringParam('buildId', null, null) + stringParam('javaDownload', 'https://download.java.net/java/GA/jdk22/830ec9fcccef480bb3e73fb7ecafe059/36/GPL/openjdk-22_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-unitpod21' + 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: 'Releng/ep-collectResults', 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/JenkinsJobs/Builds/I_build.groovy b/JenkinsJobs/Builds/I_build.groovy index 7515172112a..49e0b5573f1 100644 --- a/JenkinsJobs/Builds/I_build.groovy +++ b/JenkinsJobs/Builds/I_build.groovy @@ -493,6 +493,7 @@ spec: steps { build job: 'AutomatedTests/ep''' + MAJOR + MINOR + '''I-unit-cen64-gtk3-java17', parameters: [string(name: 'buildId', value: "${env.BUILD_IID.trim()}")], wait: false build job: 'AutomatedTests/ep''' + MAJOR + MINOR + '''I-unit-cen64-gtk3-java21', parameters: [string(name: 'buildId', value: "${env.BUILD_IID.trim()}")], wait: false + build job: 'AutomatedTests/ep''' + MAJOR + MINOR + '''I-unit-cen64-gtk3-java22', parameters: [string(name: 'buildId', value: "${env.BUILD_IID.trim()}")], wait: false build job: 'AutomatedTests/ep''' + MAJOR + MINOR + '''I-unit-macM1-java17', parameters: [string(name: 'buildId', value: "${env.BUILD_IID.trim()}")], wait: false build job: 'AutomatedTests/ep''' + MAJOR + MINOR + '''I-unit-mac64-java17', parameters: [string(name: 'buildId', value: "${env.BUILD_IID.trim()}")], wait: false build job: 'AutomatedTests/ep''' + MAJOR + MINOR + '''I-unit-win32-java17', parameters: [string(name: 'buildId', value: "${env.BUILD_IID.trim()}")], wait: false diff --git a/cje-production/scripts/publish.xml b/cje-production/scripts/publish.xml index a3996719764..88014579efd 100644 --- a/cje-production/scripts/publish.xml +++ b/cje-production/scripts/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" />