Из сценария конвейера вы можете сделать что-то вроде этого:
@NonCPS
def getAllCauses() {
currentBuild.rawBuild.getCauses().toString()
}
stage('print causes') {
echo getAllCauses()
}
Это распечатает что-то вроде этого:
[hudson.model.Cause$UserIdCause@a05b0080]
Если вам нужна более подробная информация, вам придется вычеркнуть ее из hudson.model.Cause
экземпляров. Например, вот фрагмент, который возвращает список пользователей, «ответственных» за сборку, где пользователь считается «ответственным», если он внес коммит в сборку или вызвал сборку (т. Е. Путем входа в веб-интерфейс пользователя). и нажав кнопку «Build Now»):
@NonCPS
def getResponsibleUsers() {
def build = currentBuild.rawBuild
def users = build.getCauses().collect() { cause->
def causeType = cause.getClass()
if (causeType == jenkins.branch.BranchIndexingCause) {
return build.changeSets.collect() { set->
set.collect { entry->
entry.getAuthor()
}
}
} else if (causeType == hudson.model.Cause$UserIdCause) {
return User.get(cause.getUserName())
} else {
return []
}
}
return users.flatten().unique()
}
stage('print responsible users') {
echo getResponsibleUsers()
}