// set the build options according to the Type of build def jobOptions = '' def mavenOptions = [jdk: 'OpenJDK 8'] if (params.Type == 'SNAPSHOT') { echo "Will configure Maven for SNAPSHOT artifacts" jobOptions = '' mavenOptions['mavenLocalRepo'] = '' mavenOptions['mavenSettingsFilePath'] = '' } if (params.Type == 'RELEASE') { jobOptions "Will configure Maven for RELEASE artifacts" options = '' mavenOptions['mavenLocalRepo'] = '' mavenOptions['mavenSettingsFilePath'] = '' } pipeline { agent any // environment variables available to the Pipeline environment { JOB_OPTIONS = "${jobOptions}" } parameters { choice(choices: ['SNAPSHOT', 'RELEASE'], description: 'The type of artifacts the build is expected to generate', name: 'Type') } stages { stage('build core components') { steps { withMaven($mavenOptions) { build 'maven-parent' build 'gcube-bom' build 'authorization-common-library' build 'gxRest' } script { echo "Done with core components" } } } } // post-build actions post { always { echo 'This will always run' } success { echo 'This will run only if successful' } failure { echo 'This will run only if failed' } unstable { echo 'This will run only if the run was marked as unstable' } changed { echo 'This will run only if the state of the Pipeline has changed' echo 'For example, if the Pipeline was previously failing but is now successful' } } }