2017-11-03 15 views
0

私はジョブBとジョブCをトリガするジョブAを持っています。ジョブBトリガジョブDとジョブCトリガジョブD ジョブAをビルドした後、実行中のDジョブは2つ取得します。 ジョブAをビルドした後にジョブDを1回だけ実行したい(BとCはすでにビルドされていなければならない)。Jenkinsは同じジョブを2回実行します

+0

何を修正しましたか?あなたが記述したもので何も壊れていません。 2 Dジョブを実行できます。 –

+0

@RobHalesビルドプロセスを加速するためにジョブAをビルドしたあと、ジョブDを1回だけ実行したい。 – Simankov

答えて

1

パイプラインジョブが発明された理由は、これらのより複雑な種類の条件を処理するためです。他のジョブをトリガーするさまざまなプラグインをインストールするのではなく、異なるジョブを待つ、UIでロジックをプログラムしようとするなど、すべての個々のジョブをパイプラインの段階に置く(またはパイプラインの段階からコールする)この論理は容易になる。

すでにすべてのジョブをセットアップしている場合は、パイプラインロジックを使用して簡単なトリガージョブを使用して、他のジョブを呼び出し、適切な順序で適切な回数だけ実行してください。

0

並列ビルドジョブ/ダイヤモンド依存関係などの処理は、パイプラインで行うのが良いです。

これらのコードを使用するオプションがなく、ジョブだけで動作する場合は、JobFanInプラグインを探してみることをお勧めします。

https://wiki.jenkins.io/display/JENKINS/JobFanIn+Plugin

インストール後、一度BとCのジョブBとジョブCのために監視するジョブDを設定することにより、Aとの両方が、その後にのみジョブDが実行されます完了するとトリガされます。

0

Jenkinsパイプラインを使用しないことをお勧めする場合は、Multi-job pluginを代わりに使用することを検討してください。

関連する問題