1. ホーム
  2. shell

[解決済み] シェルスクリプトを実行する際にJenkinsでビルドを不安定にする方法

2023-02-04 22:58:07

質問

私が取り組んでいるプロジェクトでは、さまざまなタスクを実行するためにシェルスクリプトを使用しています。あるものは rsync を実行する sh/bash スクリプトであり、あるものは PHP スクリプトです。PHP スクリプトの 1 つは、JUnit XML、コードカバレッジレポート、および同様のものに出力するいくつかの統合テストを実行しています。

Jenkins は に基づいてジョブを成功/失敗としてマークします。 終了ステータス . で PHP では、スクリプトは 1 で終了します。 で終了します。他のシェルスクリプトはコマンドを実行し、ビルドを失敗とマークするためにそれらの終了コードを使用します。

// :: End of PHP script:
// If any tests have failed, fail the build
if ($build_error) exit(1);

Jenkinsの用語 では、不安定なビルドは次のように定義されています。

ビルドが正常に行われ、一つ以上のパブリッシャーが不安定であると報告した場合、そのビルドは不安定となります。例えば、JUnit パブリッシャーが設定され、テストが失敗した場合、そのビルドは不安定とマークされます。

シェルスクリプトを実行する際に、成功/失敗だけでなく、Jenkinsにビルドを不安定とマークさせるにはどうしたらよいですか?

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

この場合 テキストファインダー プラグインを使用します。

ステータス1で終了する(ビルドに失敗する)代わりに、次のようにします。

if ($build_error) print("TESTS FAILED!");

ビルド後のアクションでテキストファインダーを有効にするよりも、印刷したメッセージと一致するように正規表現を設定します ( TESTS FAILED! ) に一致する正規表現を設定し、その項目の下にある "Unstable if found" チェックボックスをチェックします。