1

Jenkins Job DSL プラグインを使用しており、パラメーター化されたビルドであるシード ジョブを構成しています。誰かが必須パラメーターの 1 つを入力し忘れた場合、ビルドを失敗させたいと思います。DSL スクリプトの先頭に次のものがあります。

def expectedParams = [
  'BRANCH_NAME',
  'FALLBACK_BRANCH',
  'FOLDER_NAME',
  'FOLDER_DISPLAYNAME',
  'MAIL_TO'
];


boolean envChecksPass = true;
expectedParams.each {
  if (! binding.variables.get(it)?.trim()) {
      println "This script expects the $it environment variable to be set."
      envChecksPass = false;
  }
}

if (! envChecksPass) {
  // TODO: SET THE JOB STATUS TO FAILED
  return false;
}

TODO ビットを完了するにはどうすればよいですか? 明らかに、ここで例外をスローできますが、少し醜いようです。推奨/ベストプラクティスの方法は何ですか。

4

3 に答える 3

4

現在、例外をスローすることが推奨される方法です。をスローするとjavaposse.jobdsl.dsl.DslException、スタック トレースが抑制され、メッセージのみが表示されます。

于 2016-01-19T13:46:03.673 に答える
0

もう 1 つの方法は、ジョブの結果を FAILURE としてマークするゼロ以外のコードで終了することです。

if (! envChecksPass) {
  // TODO: SET THE JOB STATUS TO FAILED
  exit 1;
}
于 2016-01-24T13:09:33.843 に答える