當構建被用戶中止時,是否有方法獲取用戶名? 最好使用jenkins管道代碼。Jenkins獲取中止構建的用戶
當構建由用戶中止,它記錄:
Aborted by <username>
所以我希望它被存儲爲一個短期的變量。
用例:用戶名稍後用於通過電子郵件或其他消息方式通知用戶自己或其他用戶。
當構建被用戶中止時,是否有方法獲取用戶名? 最好使用jenkins管道代碼。Jenkins獲取中止構建的用戶
當構建由用戶中止,它記錄:
Aborted by <username>
所以我希望它被存儲爲一個短期的變量。
用例:用戶名稍後用於通過電子郵件或其他消息方式通知用戶自己或其他用戶。
不幸的是,目前似乎沒有其他解決方案,但是要調整Jenkin的代碼本身和解決方法。
生成後的行動→可編輯的電子郵件通知→觸發器→添加觸發器→中止→發送到→添加→請求者→→... Jenkins Mailer Plugin:
發送電子郵件至誰發起了體型的使用者。
有沒有中止添加。
http://<jenkins>/job/<project name>/lastBuild/api/xml
顯示:
...
<result>ABORTED</result>
...
但沒有信息誰或者中止構建。
解決方法可能是curl http://<jenkins>/job/<project name>/<build #>
在Post build task腳本和grep
。
如果作業被中止,似乎InterruptedBuildAction對象被插入到構建動作列表中。該對象可用於檢索中止構建的用戶。我使用下面的函數在我Jenkinsfile:
@NonCPS
def getAbortUser()
{
def causee = ''
def actions = currentBuild.getRawBuild().getActions(jenkins.model.InterruptedBuildAction)
for (action in actions) {
def causes = action.getCauses()
// on cancellation, report who cancelled the build
for (cause in causes) {
causee = cause.getUser().getDisplayName()
cause = null
}
causes = null
action = null
}
actions = null
return causee
}
事實上,你可以使用REST API這些信息,只需要使用以下網址與適當的構建:
/api/json?tree=actions[causes[*]]&pretty=true
而且你應該能夠根據行動[原因]找到請求的信息,例如:
{
"_class" : "jenkins.model.InterruptedBuildAction",
"causes" : [
{
"_class" : "jenkins.model.CauseOfInterruption$UserInterruption",
"shortDescription" : "Aborted by some_user_name"
}
]
},