Jenkins has a $CAUSE variable available to freestyle build jobs.
How can I access this or something similar in workflow?
My team makes use of it in email out
$BUILD_CAUSE env is not available for pipelines, and in multibranch pipeline even
currentBuild.rawBuild.getCause(hudson.model.Cause$UserIdCause)
would fail, if build was triggered by SCM change or timer.
So, I implemented below workaround..
def manualTrigger = false
node('master'){
def causes = currentBuild.rawBuild.getCauses()
for(cause in causes) {
if(cause.properties.shortDescription =~ 'Started by user') {
manualTrigger = true
break
}
}
}
And rest of my workflow is in another node
node('nodefarm') {
if(manualTrigger) {
// do build stuff here
} else {
//build not triggered by user.
}
}