12

ビルド ステップを実行Execute shellしてスクリプトを実行すると、そのスクリプトは を返し0Jenkinsビルドに としてフラグを立てますSUCCESS。それ以外の場合FAILUREは、期待されるデフォルトの動作であるとしてフラグを立てます。これは、0エラーがないことを意味し、他の値はエラーを表すためです。

戻り値が(例: 、、...)SUCCESS以外の特定の値と一致する場合にのみ、ビルドをマークする方法はありますか?0123

PS:なぜ私がそれを探しているのか疑問に思っている場合は、スクリプトがさまざまな要因に応じて異なる終了値を返すように記述されているため、Jenkins 自体の単体テストを実行できるため、依存する特定の値を期待できます。特定のセットアップミスについて、そして私のJenkins統合全体がそれらを確実に拾うようにします。

4

6 に答える 6

19

よし、特定の終了コードに応じて特定のジョブステータスを設定するプラグインについては、誰も新しいことはありませんでした:(次の内容のステップをIRC #jenkins作成することで、やりたいことができました:Execute shell

bash -c "/path/to/myscript.sh; if [ "\$?" == "$EXPECTED_EXIT_CODE" ]; then exit 0; else exit 1; fi"

-スクリプトを下で実行するbash -cと、終了コードをキャッチでき、Jenkinsその終了コードが 0 と異なる場合 (通常はそうします) にビルドの実行を停止できなくなります。

-スクリプトの実行後\$?と解釈され、その終了コードを表します。$?

-$EXPECTED_EXIT_CODEは、期待している終了コードを定義するジョブ パラメータの 1 つです。

-ifステートメントは単純に次のことを行います: 予想される終了コードを取得した場合は、ビルドが としてマークされるように 0 で終了します。そうでない場合は、ビルドが としてマークされるSUCCESSように 1 で終了しFAILUREます。

于 2012-11-26T14:11:35.883 に答える
5
/path/to/myscript.sh || if [ "$?" == "$EXPECTED_EXIT_CODE" ]; then continue; else exit 1; fi

実行する必要がある他のアイテムが下にある場合は、 exit 0 の代わりに continue を使用します。

于 2014-06-12T15:25:09.417 に答える
3

Text-finder Pluginを介して処理できます:

  • 次のように、終了しようとしている終了コードをスクリプトに出力させます。
    Failed on XXX - Exiting with RC 2

  • Text-finder プラグインを使用してそのエラー メッセージをキャッチし、ビルドを「失敗」または「不安定」としてマークします。たとえば、 RC 2、3、および 4がビルドを「不安定」としてマークする必要があると
    判断した場合は、このパターン: .
    Exiting with RC [2-4]
于 2012-11-26T07:51:41.563 に答える
1

シェル スクリプトのラッパーを作成します。そのラッパーにテストを実行させてから、必要な基準に従って戻り値を設定します。

于 2012-11-25T14:01:34.053 に答える