Currently my pipeline fails (red), when a maven-job is unstable (yellow).
node {
stage \'Unit/SQL-Tests\'
parallel (
phase1: { build \'Unit-Te
Lessons learned:
currentBuild.result value which can be either SUCCESS, UNSTABLE or FAILURE (source).build job: can be stored in a variable. The build status is in variable.result.build job: , propagate: false will prevent the whole build from failing right away.currentBuild.result can only get worse. If that value was previously FAILED and receives a new status SUCCESS through currentBuild.result = 'SUCCESS' it will stay FAILEDThis is what I finally used:
node {
def result // define the variable once in the beginning
stage 'Unit/SQL-Tests'
parallel (
phase1: { result = build job: 'Unit', propagate: false }, // might be UNSTABLE
phase2: { build 'SQL-Tests' }
)
currentBuild.result = result.result // update the build status. jenkins will update the pipeline's current status accordingly
stage 'Install SQL'
build 'InstallSQL'
stage 'Deploy/Integration-Tests'
parallel (
phase1: { build 'Deploy' },
phase2: { result = build job: 'Integration-Tests', propagate: false }
)
currentBuild.result = result.result // should the Unit-Test be FAILED and Integration-Test SUCCESS, then the currentBuild.result will stay FAILED (it can only get worse)
stage 'Code Analysis'
build 'Analysis'
}