blob: 9611dbd50ae3f99434a2da4ff488fd5145243938 [file] [log] [blame]
#!groovy
// Jenkins Settings
// Only keep the 20 most recent builds.
properties([
[$class: 'jenkins.model.BuildDiscarderProperty',
strategy: [$class: 'LogRotator', numToKeepStr: '20', artifactNumToKeepStr: '20']
]
])
// Start Build
timestamps {
// Claim a Linux build slave to work in
node() {
currentBuild.result = 'SUCCESS'
try {
currentBuild.displayName=env.BRANCH_NAME + ' #' + env.BUILD_NUMBER
// Gain access to installed tools in Jenkins
def JAVA_TOOL=tool 'jdk1.8.0-latest'
def MAVEN_TOOL=tool 'apache-maven-latest'
def MEM_ARGS="-Xms512m -Xmx4096m -XX:MaxPermSize=2048m"
stage('Preparation') {
timeout(time: 15, unit: 'MINUTES') {
checkout scm
}
}
// Now we can run the Maven build
stage('Build') {
// Setup the Environment with Java and Maven on the classpath
withEnv(["JAVA_HOME=${JAVA_TOOL}", "PATH+MAVEN=${MAVEN_TOOL}/bin:${env.JAVA_HOME}/bin",
"JAVA_OPTS=${MEM_ARGS}", "MAVEN_OPTS=${MEM_ARGS}"]) {
timeout(time: 90, unit: 'MINUTES') {
try {
echo "Building branch: ${env.BRANCH_NAME}"
wrap([$class:'Xvnc', useXauthority: true]) {
sh "mvn -T 8 -B -fae clean verify -DskipRCP"
}
} finally {
step([$class: 'JUnitResultArchiver', testResults: '**/target/surefire-reports/TEST-*.xml'])
}
}
}
}
// Archive the created update site so that we can use it in the future - but only
// for our release branches and master branch.
if (env.BRANCH_NAME.equals("master")) {
timeout(time: 15, unit: 'MINUTES') {
stage('Archive Artifacts') {
// Fingerprints will allow this artifact to be traceable if a downstream job
// references it in the future.
archiveArtifacts artifacts: 'releng/org.eclipse.tigerstripe.update-site/target/*.zip', fingerprint: true
}
}
}
} catch (any) {
currentBuild.result = 'FAILURE'
throw any
} finally {
if (currentBuild.result != 'ABORTED') {
step([$class: 'Mailer', notifyEveryUnstableBuild: true, recipients: 'danijoh2@cisco.com', sendToIndividuals: true])
}
}
}
}