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 output of existing ad-hoc builds. We'd like to continue the same in new workflow based jobs.
It looks like Workflow builds don't have this variable injected. However you can retrieve the required info from currentBuild.rawBuild
object using hudson.model.Run.getCause() or hudson.model.Run.getCauses() method.
Example:
Workflow script:
println "CAUSE ${currentBuild.rawBuild.getCause(hudson.model.Cause$UserIdCause).properties}"
results with this output:
Running: Print Message CAUSE [userName:John Smith, userId:jsmith, class:class hudson.model.Cause$UserIdCause, shortDescription:Started by user John Smith]
Other Cause subtypes can be found in the javadoc.
There is also a good get-build-cause example which is based on this answer in the jenkins Pipeline Examples repository.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With