how to get $CAUSE in workflow

后端 未结 9 1738
暗喜
暗喜 2020-12-10 01:24

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

9条回答
  •  被撕碎了的回忆
    2020-12-10 02:16

    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.

提交回复
热议问题