8

4つのダウンストリームジョブを実行するアップストリームのジョブがあります。

アップストリームジョブが正常に終了すると、ダウンストリームジョブが実行を開始します。

アップストリームジョブは正常に終了したため、青いボールを取得します(ビルド結果=安定)が、ダウンストリームジョブが失敗した場合(赤いボール)または不安定な場合(黄色のボール)でも、アップストリームジョブは青い色を維持します。

アップストリームジョブの結果をダウンストリームジョブに依存させる方法はありますか?つまり、3つのダウンストリームジョブが安定したビルドを取得し、そのうちの1つが不安定なビルドを取得する場合、アップストリームビルドの結果は不安定になるはずです。

4

5 に答える 5

6

私は解決策を見つけました。ビルド後のフェーズでGroovyスクリプトを実行できるGroovyPostbuildプラグインと呼ばれるプラグインがあります。ダウンストリームの全体的なステータスを変更できるダウンストリームジョブに簡単なコードを追加します。

追加する必要のあるコードは次のとおりです。

upstreamBuilds = manager.build.getUpstreamBuilds();

upstreamJob = upstreamBuilds.keySet().iterator().next();

lastUpstreamBuild = upstreamJob.getLastBuild();

if(lastUpstreamBuild.getResult().isBetterThan(manager.build.result)) {
    lastUpstreamBuild.setResult(manager.build.result);
}

詳細については、私のブログのエントリをご覧ください。

于 2011-06-14T17:25:01.207 に答える
5

あなたのために働くかもしれないもう一つのオプションは、パラメータ化されたビルドプラグインを使用することです。これにより、4つの「ダウンストリーム」ビルドをビルドステップとして使用できます。これは、子ビルドのいずれかが失敗した場合、「親」ビルドが失敗する可能性があることを意味します。

これは、ビルドパイプラインプラグインビューの複雑さを隠したい場合に行います。

于 2011-05-31T05:24:08.773 に答える
1

同様の問題が発生しましたが、完璧な解決策は見つかりませんでした。部分的な解決策は、プロモートビルドプラグインを使用することです。ダウンストリームジョブが終了したときに視覚的なインジケーターが含まれるように、アップストリームプロジェクト用に構成します。全体的なジョブステータスは変更されませんが、ダウンストリームジョブが失敗したときに通知されます。

于 2011-05-27T15:44:20.253 に答える
1

おそらく、このプラグインはあなたが探していることをしますか?

Jenkinsの前提条件のビルドステッププラグイン

于 2011-07-08T20:12:54.537 に答える
0

私のプロジェクトの回避策は、ダウンストリームのダウンストリームである新しいジョブを作成することです。元の3つのダウンストリームジョブすべてに、ビルド後のステップ「他のプロジェクトでパラメーター化されたビルドをトリガーする」を設定しました。新しいジョブに解析されるパラメーターは、3つのジョブのステータスに依存し、パラメーターにより、新しいジョブはそれに応じて反応します。

1.1つの単純なクラスと1つの単純なテストを含む新しいジョブを作成します。両方のパラメータが依存します。つまり、パラメータの場合はクラスが失敗し"status" = fail、クラスは合格しますが、パラメータ"status"=unstableの場合はテストが失敗します。

2.関連する構成を持つ3つの元のダウンストリームジョブに対して、他のプロジェクトでトリガーパラメーター化ビルドを設定します。

3.それに応じて新しいジョブの通知を設定します。

于 2011-06-01T11:19:35.307 に答える