diff --git a/JenkinsJobs/PerformanceTests/FOLDER.groovy b/JenkinsJobs/PerformanceTests/FOLDER.groovy deleted file mode 100644 index 154992164d5..00000000000 --- a/JenkinsJobs/PerformanceTests/FOLDER.groovy +++ /dev/null @@ -1,60 +0,0 @@ -def config = new groovy.json.JsonSlurper().parseText(readFileFromWorkspace('JenkinsJobs/JobDSL.json')) -def STREAMS = config.Streams - -folder('PerformanceTests') { - displayName('Performance Tests') - description('Folder for Performance Tests') -} - -for (STREAM in STREAMS){ - def MAJOR = STREAM.split('\\.')[0] - def MINOR = STREAM.split('\\.')[1] - pipelineJob('PerformanceTests/ep' + MAJOR + MINOR + '-perf-tests'){ // The result collecting scripts rely on the '-perf-' part in the name - displayName('ep' + MAJOR + MINOR + '-Performance-Tests') - description('Run performance tests') - // Define parameters in job configuration to make them already available in the very first build - parameters { - stringParam('buildId', null, 'Build ID to test, such as I20140821-0800 or M20140822-0800') - stringParam('testToRun', 'selectPerformance', """ -Name of test suite (or test suite collection) to run. -Collections: -selectPerformance (a group of tests that complete in about 3 hours) -otherPerformance (a small group of tests that either are not working, or take greater than one hour each). - -Individual Tests Suites, per collection: -selectPerformance: - -antui -compare -coreresources -coreruntime -jdtdebug -jdtui -osgi -pdeui -swt -teamcvs -ua -uiforms -uiperformance -uircp - -otherPerformance: -equinoxp2ui -pdeapitooling -jdtcoreperf -jdttext -jdtuirefactoring -""") - } - definition { - cpsScm { - lightweight(true) - scm { - github('eclipse-platform/eclipse.platform.releng.aggregator', 'master') - } - scriptPath('JenkinsJobs/PerformanceTests/PerformanceTests.jenkinsfile') - } - } - } -} diff --git a/JenkinsJobs/PerformanceTests/PerformanceTests.jenkinsfile b/JenkinsJobs/PerformanceTests/PerformanceTests.jenkinsfile deleted file mode 100644 index 9905f8f9387..00000000000 --- a/JenkinsJobs/PerformanceTests/PerformanceTests.jenkinsfile +++ /dev/null @@ -1,107 +0,0 @@ -pipeline { - options { - timestamps() - timeout(time: 12, unit: 'HOURS') - buildDiscarder(logRotator(numToKeepStr:'5')) - disableConcurrentBuilds(abortPrevious: true) - skipDefaultCheckout() - } - agent { - label 'performance' //FIXME/TODO: that machine cannot run a current Eclipse anymore. - } - stages { - stage('Launch performance tests') { - environment { - // Declaring a jdk and ant the usual way in the 'tools' section, because of unknown reasons, breaks the usage of system commands like xvnc, pkill and sh - JAVA_HOME = installTemurinJDK('21', 'linux', 'x86_64') - ANT_HOME = tool(type:'ant', name:'apache-ant-latest') - PATH = "${JAVA_HOME}/bin:${ANT_HOME}/bin:${PATH}" - } - matrix { - axes { - axis { - name 'CONFIGURATION' - //FIXME/TODO: check what's the difference between the I- and ILR (latest-release?) performance tests? - // By default there is none, so it can maybe be streamlined - values \ - 'I-linux.x86_64-baseline', \ - 'I-linux.x86_64', \ - 'ILR-linux.x86_64-baseline', \ - 'ILR-linux.x86_64' - } - } - stages { - stage('Run performance tests') { - environment { - baselinePerf = "${env.CONFIGURATION.endsWith('-baseline')}" - WORKSPACE = "${WORKSPACE}/${CONFIGURATION}" - ANT_OPTS = "-Djava.io.tmpdir=${WORKSPACE}/tmp" - } - steps { - cleanWs(patterns: [[pattern: 'java/**', type: 'EXCLUDE']]) // Don't delete downloaded JDK - dir("${CONFIGURATION}") { - xvnc(useXauthority: true) { - sh '''#!/bin/bash -x - buildId=$(echo $buildId|tr -d ' ') - testToRun=$(echo $testToRun|tr -d ' ') - echo "whoami: $(whoami)" - echo "uname -a: $(uname -a)" - - # 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 tmp - - curl -o getEBuilder.xml https://download.eclipse.org/eclipse/relengScripts/testScripts/bootstrap/getEBuilder.xml - - echo JAVA_HOME: $JAVA_HOME - echo ANT_HOME: $ANT_HOME - echo PATH: $PATH - echo baselinePerf: $baselinePerf - - 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 -DbuildId=${buildId} -DbaselinePerf=${baselinePerf} \ - -Dosgi.os=linux -Dosgi.ws=gtk -Dosgi.arch=x86_64 \ - -DtestSuite=${testToRun} -Dtest.target=performance - ''' - } - } - - junit keepLongStdio: true, testResults: '**/eclipse-testing/results/xml/*.xml' - build job: 'Releng/collectPerfResults', wait: false, parameters: [ - string(name: 'triggeringJob', value: "${JOB_BASE_NAME}"), - string(name: 'buildURL', value: "${BUILD_URL}"), - string(name: 'buildID', value: "${params.buildId}") - ] - } - post { - always { - archiveArtifacts '**/eclipse-testing/results/**, **/eclipse-testing/directorLogs/**, *.properties, *.txt' - } - } - } - } - } - } - } - post { - always { - cleanWs() - } - } -} - -def installTemurinJDK(String version, String os, String arch, String releaseType='ga') { - dir ("${WORKSPACE}/java") { - sh "curl -L https://api.adoptium.net/v3/binary/latest/${version}/${releaseType}/${os}/${arch}/jdk/hotspot/normal/eclipse | tar -xzf -" - return "${pwd()}/" + sh(script: 'ls', returnStdout: true).strip() - } -} diff --git a/JenkinsJobs/Releng/collectPerfResults.groovy b/JenkinsJobs/Releng/collectPerfResults.groovy deleted file mode 100644 index 7f17b95d323..00000000000 --- a/JenkinsJobs/Releng/collectPerfResults.groovy +++ /dev/null @@ -1,128 +0,0 @@ -job('Releng/collectPerfResults'){ - displayName('Collect Performance Results') - description('This job is to perform some summary analysis and then write performance test results to the download page.') - - parameters { - stringParam('triggeringJob', null, 'Name of the job to collect results from: i.e. \'ep425I-perf-lin64\'.') - stringParam('buildURL', null, 'Build URL of the triggering job.') - stringParam('buildID', null, 'ID of the I-build being tested.') - } - - label('basic') - - logRotator { - daysToKeep(5) - numToKeep(10) - } - - wrappers { //adds pre/post actions - timestamps() - preBuildCleanup() - sshAgent('projects-storage.eclipse.org-bot-ssh') - timeout { - absolute(30) - } - } - - steps { - shell('''#!/bin/bash -xe - -buildID=$(echo $buildID|tr -d ' ') -buildURL=$(echo $buildURL|tr -d ' ') -triggeringJob=$(echo $triggeringJob|tr -d ' ') - -java_home=/opt/public/common/java/openjdk/jdk-17_x64-latest/bin - -wget -O ${WORKSPACE}/buildproperties.shsource --no-check-certificate http://download.eclipse.org/eclipse/downloads/drops4/${buildID}/buildproperties.shsource -cat ${WORKSPACE}/buildproperties.shsource -source ${WORKSPACE}/buildproperties.shsource - -epDownloadDir=/home/data/httpd/download.eclipse.org/eclipse -dropsPath=${epDownloadDir}/downloads/drops4 -buildDir=${dropsPath}/${buildID} - -workingDir=${epDownloadDir}/workingDir - -workspace=${workingDir}/${JOB_BASE_NAME}-${BUILD_NUMBER} - -ssh genie.releng@projects-storage.eclipse.org rm -rf ${workingDir}/${JOB_BASE_NAME}* - -ssh genie.releng@projects-storage.eclipse.org mkdir -p ${workspace} - -#get latest Eclipse platform product -epRelDir=$(ssh genie.releng@projects-storage.eclipse.org ls -d --format=single-column ${dropsPath}/R-*|sort|tail -1) -ssh genie.releng@projects-storage.eclipse.org tar -C ${workspace} -xzf ${epRelDir}/eclipse-platform-*-linux-gtk-x86_64.tar.gz - -ssh genie.releng@projects-storage.eclipse.org PATH=${java_home}:$PATH ${workspace}/eclipse/eclipse -nosplash \\ - -debug -consolelog -data ${workspace}/workspace-toolsinstall \\ - -application org.eclipse.equinox.p2.director \\ - -repository ${ECLIPSE_RUN_REPO},${BUILDTOOLS_REPO},${WEBTOOLS_REPO} \\ - -installIU org.eclipse.platform.ide,org.eclipse.pde.api.tools,org.eclipse.releng.build.tools.feature.feature.group,org.eclipse.wtp.releng.tools.feature.feature.group \\ - -destination ${workspace}/basebuilder \\ - -profile SDKProfile - -ssh genie.releng@projects-storage.eclipse.org rm -rf ${workspace}/eclipse - -#get requisite tools -ssh genie.releng@projects-storage.eclipse.org wget -O ${workspace}/collectTestResults.xml https://raw.githubusercontent.com/eclipse-platform/eclipse.platform.releng.aggregator/master/cje-production/scripts/collectTestResults.xml -ssh genie.releng@projects-storage.eclipse.org wget -O ${workspace}/publish.xml https://raw.githubusercontent.com/eclipse-platform/eclipse.platform.releng.aggregator/master/cje-production/scripts/publish.xml - -cd ${WORKSPACE} -git clone https://github.com/eclipse-platform/eclipse.platform.releng.aggregator.git -cd ${WORKSPACE}/eclipse.platform.releng.aggregator/eclipse.platform.releng.tychoeclipsebuilder -scp -r eclipse genie.releng@projects-storage.eclipse.org:${workspace}/eclipse -cd ${WORKSPACE} - -#triggering ant runner -baseBuilderDir=${workspace}/basebuilder -javaCMD=${java_home}/java - -launcherJar=$(ssh genie.releng@projects-storage.eclipse.org find ${baseBuilderDir}/. -name "org.eclipse.equinox.launcher_*.jar" | sort | head -1 ) - -scp genie.releng@projects-storage.eclipse.org:${buildDir}/buildproperties.shsource . -source ./buildproperties.shsource - -devworkspace=${workspace}/workspace-antRunner - -ssh genie.releng@projects-storage.eclipse.org ${javaCMD} -jar ${launcherJar} -nosplash -consolelog -debug -data $devworkspace -application org.eclipse.ant.core.antRunner -file ${workspace}/collectTestResults.xml \\ - -DpostingDirectory=${dropsPath} \\ - -Djob=${triggeringJob} \\ - -DbuildURL=${buildURL} \\ - -DbuildID=${buildID} - - -#if all 4 dat files are present generate results tables -#do first so performance.php regenerated -devworkspace=${workspace}/workspace-newjar -performanceDir=${buildDir}/performance -phpFile=${workspace}/eclipse/publishingFiles/templateFiles/basicPerformance.php - -files=$(ssh genie.releng@projects-storage.eclipse.org ls ${performanceDir}/*.dat) - -if [[ $(echo $files | wc -w) -eq 4 ]]; then - ssh genie.releng@projects-storage.eclipse.org ${javaCMD} -jar ${launcherJar} -nosplash -consolelog -clean -debug -data $devworkspace -application org.eclipse.test.performance.basicResultsTable \\ - -current ${buildID} \\ - -baseline ${BASEBUILD_ID} \\ - -buildDirectory ${performanceDir} \\ - -phpFile ${phpFile} \\ - -inputFiles ${files} -fi - -#remove performance.php so it has to be regenerated -ssh genie.releng@projects-storage.eclipse.org rm -f ${performanceDir}/performance.php - -devworkspace=${workspace}/workspace-updateTestResults - -ssh genie.releng@projects-storage.eclipse.org ${javaCMD} -jar ${launcherJar} -nosplash -consolelog -debug -data $devworkspace -application org.eclipse.ant.core.antRunner -file ${workspace}/publish.xml \\ - -DpostingDirectory=${dropsPath} \\ - -Djob=${triggeringJob} \\ - -DbuildID=${buildID} \\ - -DeclipseStream=${STREAM} \\ - "-DtestsConfigExpected=${TEST_CONFIGURATIONS_EXPECTED}" \\ - -DEBuilderDir=${workspace} - -#Delete Workspace -ssh genie.releng@projects-storage.eclipse.org rm -rf ${workingDir}/${JOB_BASE_NAME}* - ''') - } -}