1. ホーム
  2. jenkins

Jenkinsのパイプラインから現在のビルドを中止する

2023-12-28 11:24:34

質問

Jenkinsのパイプラインに複数のステージがあるのですが、例えば、以下のような場合です。

node("nodename") {
  stage("Checkout") {
    git ....
  }
  stage("Check Preconditions") {
    ...
    if(!continueBuild) {
      // What do I put here? currentBuild.xxx ?
    }
  }
  stage("Do a lot of work") {
    ....
  }
}

ある前提条件が満たされず、実際に行うべき作業がない場合、ビルドをキャンセル(失敗ではない)できるようにしたいのです。どうすればよいでしょうか。私は currentBuild 変数が利用可能であることを知っていますが、私はそれのためのドキュメントを見つけることができません。

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

ビルドをABORTEDとしてマークし、その後に error ステップでビルドを停止させることができます。

if (!continueBuild) {
    currentBuild.result = 'ABORTED'
    error('Stopping early…')
}

ステージビューでは、ビルドがこの段階で停止したことが表示されますが、ビルド全体は失敗ではなく、中止とマークされます(ビルド#9のグレーのアイコンを参照ください)。