このソリューションに基づいて、ユーザー入力を待機し、タイムアウト値が1分のパイプラインステップがあります
def deployFlag
:
:
timeout(1) {
script{
deployFlag = input message: 'Deploy On build ?', ok: 'Proceed ?', parameters: [choice(choices: 'true\nfalse',
description: 'Select true or false', name: 'Deploy'), string(defaultValue: 'false', description: '', name: 'deploy')]
}
}
これは正しく機能しています。
タイムアウト期間の後、デフォルト値で続行するようにこれを変更する方法はありますfalse
か?
現在、何も選択されていない場合、ジョブは「タイムアウトのためにネストされたステップをキャンセルしています...」で失敗します。
timeout
ステップは、スローorg.jenkinsci.plugins.workflow.steps.FlowInterruptedException
、それは与えられたタイムアウトに当たったとき。この例外をキャッチして、catch
ブロックにデフォルト値を設定できます。次の例を考えてみましょう。
node {
stage("Test") {
def deployFlag
try {
timeout(1) {
deployFlag = input message: 'Deploy On build ?', ok: 'Proceed ?', parameters: [choice(choices: 'true\nfalse', description: 'Select true or false', name: 'Deploy'), string(defaultValue: 'false', description: '', name: 'deploy')]
}
} catch (org.jenkinsci.plugins.workflow.steps.FlowInterruptedException e) {
deployFlag = [Deploy: true, deploy: false]
}
println deployFlag
}
}
この例外をキャッチすると、パイプラインは失敗するのではなくビルドを続行します。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加