Issue
Using groovy script how can another pipeline job be triggered as soon as the build completes. Suppose there are two pipeline A and B, and as soon as pipeline A completes successfully it has to pass its parameters to B and B has to start running. (B has to run only after A terminates)
I tried to trigger the build using the below code, this triggers the job B but job A remains running util the complete execution of job B
stage('Artifactory_Publish_Job') {
try {
def job = build job: 'Jfrog_Artifactory_Publish', parameters: [[$class: 'StringParameterValue', name: 'buildDateString', value: 'default'], [$class: 'StringParameterValue', name: 'WORKSPACE_DIR', value: 'default'], [$class: 'StringParameterValue', name: 'Artifactory_Directory', value: 'default']]
} catch (any) {
throw any
}
}
Solution
You can run the second Job in the Post Step, which is executed once the Job is completed. Additionally you can add following options to the build command propagate: false, wait: false
pipeline {
agent any
stages {
stage('Example') {
steps {
echo 'Hello World'
}
}
}
post {
success {
echo 'Will run only when successful.'
build job: 'Jfrog_Artifactory_Publish', parameters: [[$class: 'StringParameterValue', name: 'buildDateString', value: 'default'], [$class: 'StringParameterValue', name: 'WORKSPACE_DIR', value: 'default'], [$class: 'StringParameterValue', name: 'Artifactory_Directory', value: 'default']], propagate: false, wait: false
}
}
}
Answered By - ycr
Answer Checked By - Robin (JavaFixing Admin)