web-dev-qa-db-ja.com

Jenkins Pipelineにタイムアウトステップを追加する方法

フリースタイルプロジェクトを使用している場合、20分後にビルドが終了しない場合はビルドが中止されるように設定できます。 Jenkins Multi Branch Pipeline Projectでこれはどのように可能ですか?

63
Devonte

timeout ステップを使用できます。

timeout(20) {
  node {
    sh 'foo'
  }
}

とは異なる TimeUnit が必要な場合は、unit引数を指定できます。

timeout(time: 20, unit: 'SECONDS') {

EDIT 2018年8月:最近では、より一般的な 宣言型パイプライン (トップレベルのpipeline構造体によって容易に認識されます)を使用して、タイムアウトも指定できます options 異なるレベル(パイプライン全体またはステージごと):

pipeline {
  options {
      timeout(time: 1, unit: 'HOURS') 
  }
  stages { .. }
  // ..
}

それでも、宣言型パイプラインの単一ステップにタイムアウトを適用する場合は、上記のように使用できます。

124
StephenKing