2016-08-03 17 views
0

GITリポジトリに新しいコミットがあると毎時間トリガされるJenkinsでラッパージョブを作成しました。このラッパー・ジョブは、6つの他のダウンストリーム・ジョブを呼び出します。だから私のラッパーの仕事(W)の構造は、このようなものです:Jenkinsでダウンストリームジョブが失敗して通知を送信する

W - > A - > B - > C - > D - > E - > F

私はステッチしジェンキンスパラメータ化されたトリガーのプラグインを使用しています一方のジョブを他方のジョブに割り当てることで、ダウンストリームジョブが失敗した場合にアップストリームジョブが失敗するようにします。最後のダウンストリームジョブ(F)が完了すると、Wrapperジョブ(W)は現在のワークスペース内のすべてのダウンストリームジョブからアーティファクトをコピーしています。

私のダウンストリームジョブ(Eと言う)が失敗すると、失敗したダウンストリームジョブ(E)だけでなく、他のすべてのアップストリームジョブ(D、C、B、A、W) 。だから私は合計で6つのメールを取得し、それはいくつかのノイズを作成します。

私は唯一のラッパージョブ(W)上の電子メール通知を有効にした場合、私は仕事Aが失敗したことを言及する単一障害通知を取得します。ジョブAのログだけをチェックして、失敗したジョブBであることを確認し、ジョブEに到達するまでログチェックを続行します。

特定のダウンストリームジョブを識別する単一のメールを送信するように通知をカスタマイズできますこの場合E)失敗を引き起こしたか?

OR

すべてのダウンストリームのジョブが完了取得するのを待つとトリガージョブにすべての下流のジョブからの成果物をコピーし、下流のジョブをトリガーするためのより良い方法はありますか?

答えて

0

Groovy Postbuildで、ラッパージョブのすべてのサブプロジェクトを繰り返し処理し、いずれかのサブプロジェクトが失敗した場合はラッパージョブを失敗としてマークします。

はまた失敗/不安定としての仕事をマークしないように「トリガー/コールは、他のプロジェクトに基づいています」の終了基準を変更しました。その代わりに、ジョブを失敗として設定する呼び出しは、groovyスクリプト自体で、下流のサブプロジェクトのステータスに基づいて処理されます。

関連する問題