ビルドがユーザーによって中止されたときにユーザー名を取得する方法はありますか? 好ましくは、ジェンキンパイプラインコードを使用します。Jenkinsがビルドを中止したユーザーを取得する
ビルドがユーザーによって中止された場合、それが記録されます:
Aborted by <username>
ので、私はそれは短い期間のための変数として格納されている願っています。
ユースケース:後でユーザー自身や他のユーザーに電子メールやその他のメッセージ手段で通知するために使用されるユーザー名。
ビルドがユーザーによって中止されたときにユーザー名を取得する方法はありますか? 好ましくは、ジェンキンパイプラインコードを使用します。Jenkinsがビルドを中止したユーザーを取得する
ビルドがユーザーによって中止された場合、それが記録されます:
Aborted by <username>
ので、私はそれは短い期間のための変数として格納されている願っています。
ユースケース:後でユーザー自身や他のユーザーに電子メールやその他のメッセージ手段で通知するために使用されるユーザー名。
は、残念ながら現時点では他の解決策はないようにしかしジェンキンのコード自体と回避策を微調整することがあるようです。
ビルド後アクション→編集可能な電子メール通知→トリガーの→トリガーを追加→中止→は→送る→を追加します。 リクエスタ→→... Jenkins Mailer Plugin:
はビルドを開始したユーザーに電子メールを送信します。
投稿者を追加してください。
http://<jenkins>/job/<project name>/lastBuild/api/xml
ショー:
...
<result>ABORTED</result>
...
が、いずれかのビルドを中止さ何ら情報がありません。
Post build taskスクリプトではcurl http://<jenkins>/job/<project name>/<build #>
に、ではgrep
に対処することができます。
ジョブが中止された場合InterruptedBuildActionオブジェクトはビルドアクションのリストに挿入されているようです。このオブジェクトを使用して、ビルドを中止したユーザーを取得できます。
/api/json?tree=actions[causes[*]]&pretty=true
そして、あなたはできるはずです:あなただけの適切なビルドで、次のURLを使用して、REST APIで、この情報を持つことができます実際には
@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
}
:私は私のJenkinsfileに次の関数を使用します
{
"_class" : "jenkins.model.InterruptedBuildAction",
"causes" : [
{
"_class" : "jenkins.model.CauseOfInterruption$UserInterruption",
"shortDescription" : "Aborted by some_user_name"
}
]
},
:アクション[原因]、例えば下に要求された情報を検索します