1. ホーム
  2. groovy

Jenkinsパイプラインで失敗したステージのリトライオプションを実装するには?

2024-01-03 04:13:54

質問

私は複数のステージを持つJenkinsファイルを持っており、それらのうちの1つは実際には別のジョブ(デプロイ1)であり、それはいくつかのケースで失敗する可能性があります。

Jenkinsfileを使用してプロンプトを作成できることは知っていますが、このジョブのための再試行メカニズムを実装する方法がよくわかりません。

失敗したステージをクリックして、再試行を選択できるようにしたいのですが。

どのように解決するのですか?

retry + input の組み合わせでできるはずです。 というようなものです。

stage('deploy-test') {
   try {
     build 'yourJob'
   } catch(error) {
     echo "First build failed, let's retry if accepted"
     retry(2) {
        input "Retry the job ?"
        build 'yourJob'
     }
   }
}

もし誰も検証しないまま終了させたいなら、入力にタイムアウトを使うこともできます。 waitUntilも便利かもしれませんが、私はまだ使っていません。

編集する。 WaitUntilは間違いなくベストだと思います。少し遊んでみるべきですが、そのようなものの方がきれいです。

stage('deploy-test') {
   waitUntil {
     try {
       build 'yourJob'
     } catch(error) {
        input "Retry the job ?"
        false
     }
   }
}

ちなみに、全手順のドキュメントがここにあります。 https://jenkins.io/doc/pipeline/steps