def call()

in vars/asfStandardBuild.groovy [24:106]


def call(Map params = [:]) {
    // Faster build and reduces IO needs
    properties([
            disableConcurrentBuilds(),
            durabilityHint('PERFORMANCE_OPTIMIZED'),
            buildDiscarder(logRotator(numToKeepStr: '5', artifactNumToKeepStr: '3'))
        ])

    // now determine params
    def jdk = 'jdk_15_latest'
    if (env.TAG_NAME=="release-1.7") {
	 jdk = 'jdk_11_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 xvfb") {
                agent { node { label 'ubuntu && !nocredentials' } }
                options { timeout(time: 120, unit: 'MINUTES') }
                when {expression {
                        return xvfb
                    }
                }
                steps{
                    wrap([$class: 'Xvfb', additionalOptions: '', assignedLabels: '', displayNameOffset: 0, installationName: 'Xvfb', parallelBuild: true, screen: '']) {
                        mavenBuild( jdk, cmdline, mvnName, publishers)
                    }
                }
            }
            stage("Build") {
                agent { node { label 'ubuntu && !nocredentials' } }
                options { timeout(time: 120, unit: 'MINUTES') }
                when {expression {
                        return !xvfb
                    }
                }
                steps{
                    mavenBuild( jdk, cmdline, mvnName, publishers)
                    
                }
            }
        }
        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" )
                    }
                }
            }
        }
    }
}