SVNマージを実行する可能性をテストし、マージをコミットする許可をユーザーに求めるJenkinsfileスクリプトがあります。
コミットメッセージに書き込むために、「入力」ステップに応答するユーザー名を知りたいのですが。
これは可能ですか?
これは、仮想的に私がやりたいことです。
outcome = input message: 'Merge trunk into branch?', ok: 'Merge'
echo "User that allowed merge: ${outcome.user}"
input
ステップにはオプションの submitterParameter
があり、入力ダイアログを送信するユーザーを含む、返されたMap
のキーを指定できます。 :
指定した場合、これは、この入力を承認するユーザーのIDを含む戻り値の名前です。
戻り値は、parameters
値と同様の方法で処理されます。
タイプ:文字列
これは次のようになります。
def feedback = input(submitterParameter: 'submitter', ...)
echo "It was ${feedback.submitter} who submitted the dialog."
追伸:ダイアログへのポジティブフィードバックとネガティブフィードバックの両方(およびタイムアウト)のためにユーザーを返す本格的なコードスニペットに興味がある場合は、 パイプラインライブラリ を指定してください。
ソースコード :に記載されているように、現時点ではエントリパラメータのみがinput step
回答で返されます。
// TODO: perhaps we should return a different object to allow the workflow to look up
// who approved it, etc?
switch (mapResult.size()) {
case 0:
return null; // no value if there's no parameter
case 1:
return mapResult.values().iterator().next();
default:
return mapResult;
}
ただし、入力ステップを承認できるユーザーを制限する場合は、submitter
パラメーターを使用できます。 :
input message: 'Approve ?', submitter: 'authorized-submitter'
[〜#〜]編集[〜#〜]
2017年1月以降、追加のパラメータの送信をリクエストできるようになりました。上記の StephenKingの回答 を参照してください。
入力にパラメータを要求していない場合は、submitterParameterの種類を追加すると機能します。戻りオブジェクトのパラメーターとして追加しませんでした。代わりに、返されたオブジェクトをユーザー名を含む文字列に変換しました。
def feedback = input(submitterParameter: 'submitter')
echo "It was ${feedback} who submitted the dialog."
groovy-sandbox
をオフにすると、例外に対してこれを行うことができます。
try {
'Deploy to production?'
node {
sh 'echo deploying'
}
} catch(e) {
def user = e.getCauses()[0].getUser()
echo "Production deployment aborted by:\n ${user}"
}