pipeline { | |
agent { | |
kubernetes { | |
label 'centos-latest' | |
} | |
} | |
parameters { | |
choice choices: ['ci', 'integration', 'milestone', 'release'], | |
description: 'Sets the build type. CI builds are used for testing reasons only; integration builds are periodic builds; milestones are considered more-or-less stable, while releases are Eclipse.org releases with a corresponding release review.', | |
name: 'BUILD_TYPE' | |
string defaultValue: '', | |
description: 'If set, the tycho-versions plugin is used to update the versions of the Maven plugins before deployment for graduated plugins', | |
name: 'RELEASE_VERSION' | |
} | |
options { | |
buildDiscarder(logRotator(numToKeepStr: '5')) | |
timeout(120 /*minutes*/) | |
} | |
environment { | |
VERSION_MAVEN_PARAMETER = " ${params.RELEASE_VERSION ? '-Drepository.version=' + params.RELEASE_VERSION : ''} " | |
SIGN_BUILD_PARAMETER = " ${params.BUILD_TYPE == 'ci' ? '' : '-P eclipse-sign'} " | |
} | |
tools { | |
maven 'apache-maven-latest' | |
jdk 'temurin-jdk11-latest' | |
} | |
stages { | |
stage('Full build') { | |
steps { | |
xvnc { | |
sh "mvn -B -f releng/org.eclipse.sphinx.releng.builds/pom.xml ${SIGN_BUILD_PARAMETER} ${VERSION_MAVEN_PARAMETER} -Dmaven.repo.local=$WORKSPACE/.repository -Dmaven.test.failure.ignore=true clean install" | |
} | |
} | |
} | |
stage('download.eclipse.org') { | |
when {expression { return params.BUILD_TYPE != "ci" }} | |
steps { | |
sshagent ( ['projects-storage.eclipse.org-bot-ssh']) { | |
sh ''' | |
export PROJECT=$WORKSPACE/releng/org.eclipse.sphinx.releng.builds/repository | |
export WORK_DIR=$PROJECT/work | |
export BUILD_DIR=/home/data/httpd/download.eclipse.org/sphinx/updates/$BUILD_TYPE | |
export VERSION=$(<$PROJECT/target/classes/version) | |
mkdir -p $WORK_DIR | |
# Upload repository to download.eclipse.org | |
ssh -o BatchMode=yes genie.sphinx@projects-storage.eclipse.org mkdir -p $BUILD_DIR/$VERSION | |
scp -o BatchMode=yes -r $PROJECT/target/repository/* genie.sphinx@projects-storage.eclipse.org:$BUILD_DIR/$VERSION | |
''' | |
} | |
} | |
} | |
} | |
post { | |
always { | |
archiveArtifacts artifacts: 'releng/org.eclipse.sphinx.releng.builds/repository/target/repository/**' | |
archiveArtifacts artifacts: 'releng/org.eclipse.sphinx.releng.builds/repository/target/org.eclipse.sphinx.updates-*.zip' | |
junit testResults: '**/tests/**/target/surefire-reports/*.xml' | |
} | |
} | |
} |