in vars/asfStandardUtilitiesBuild.groovy [23:100]
def call(Map params = [:]) {
// Faster build and reduces IO needs
properties([
disableConcurrentBuilds(),
durabilityHint('PERFORMANCE_OPTIMIZED'),
buildDiscarder(logRotator(numToKeepStr: '5', artifactNumToKeepStr: '3'))
])
// now determine params
// jdk 8 is baseline for maven be sure to maintain
def jdk = params.containsKey('jdk') ? params.jdk : 'jdk_1.8_latest'
// use the cmdLine parameter otherwise default depending on current branch
def cmdline = params.containsKey('cmdline') ? params.cmdline : (env.BRANCH_NAME == 'master'?"clean deploy site:site site:stage":"clean install")
def mvnName = params.containsKey('mvnName') ? params.mvnName : 'maven_3_latest'
def xvfb = params.containsKey('xvfb') ? true : false
def defaultPublishers = [artifactsPublisher(disabled: false), junitPublisher(ignoreAttachments: false, disabled: false),
findbugsPublisher(disabled: true), openTasksPublisher(disabled: true),
dependenciesFingerprintPublisher(disabled: false), invokerPublisher(disabled: true),
pipelineGraphPublisher(disabled: false), mavenLinkerPublisher(disabled: false)]
def publishers = params.containsKey('publishers') ? params.publishers : defaultPublishers
pipeline {
agent any
triggers {
pollSCM('H/5 * * * * ')
}
stages{
stage("Build with default jdk (jdk8 if no parameters) ") {
agent { node { label 'ubuntu && !nocredentials' } }
options { timeout(time: 120, unit: 'MINUTES') }
steps{
mavenBuild( jdk, cmdline, mvnName, publishers,true)
}
}
stage("Build on recent jdk") {
agent { node { label 'ubuntu && !nocredentials' } }
options { timeout(time: 120, unit: 'MINUTES') }
steps{
script {
def jdklist = ['jdk_11_latest','jdk_17_latest','jdk_21_latest'] // lts and after last lts if available
for (ajdk in jdklist) {
stage("build on $ajdk") {
// do not deploy for recent jdk
mavenBuild( ajdk, 'clean install site:site site:stage', mvnName, publishers,false)
}
}
}
}
}
}
post {
always {
cleanWs() // deleteDirs: true, notFailBuild: true, patterns: [[pattern: '**/.repository/**', type: 'INCLUDE']]
}
unstable {
script{
notifyBuild( "Unstable Build ")
}
}
failure {
script{
notifyBuild( "Error in build ")
}
}
success {
script {
def previousResult = currentBuild.previousBuild?.result
if (previousResult && !currentBuild.resultIsWorseOrEqualTo( previousResult ) ) {
notifyBuild( "Fixed" )
}
}
}
}
}
}