0

私は3つの仕事を持っています。ジョブを他の2つのジョブのステータスをチェックする方法を教えてください。

  1. まず親の仕事
  2. 第二の親ジョブ私は「最初の親の仕事」と「第二の親ジョブの後に「子ジョブ」をトリガーする
  3. 子ジョブ

が行われ、成功した。私は両方の親の仕事を支配していません。両方ともいつでも実行できます。

要するに、2つの親ジョブに依存する子ジョブがあります。両方の親ジョブが完了した直後にこの子ジョブを実行したい。

解決策を教えてください。プラグインやJenkinsのPython APIを使用できますか?

+0

私は説明を求めることができますか?あなたはどちらもいつでも注文することができると言いましたが、子供の仕事を誘発するためには両方を実行する必要がありますか?だから1つが実行され、正常に終了する場合は、子供の仕事を引き起こすべきではない?親ジョブはそれらの間に何らかの接続を持っていますか?彼らはビルドの数と並んでいますか? (P1が4回実行され、P2が2回実行されるため、P2が2回以上実行されてから、子供のジョブがトリガーされるまで待ちますか?) – Dvir669

+0

@ Dvir669 親ジョブは関連しません。 例: 親ジョブ1はインストーラーを作成します。 親ジョブ2別のインストーラーを作成します。B 子ジョブは、これらのインストーラー(AとB)のスイートをビルドするためにインストーラーを必要とします。 したがって、親ジョブはいつでも完了できます。両方の親ジョブは独立しています。 子ジョブが1つの親ジョブから1つのトリガーを受け入れ、次の親ジョブの実行が成功するまで待機するメカニズムが必要です。 –

+0

両方のジョブから最後の正常なインストーラが必要なようです。私はそれを別の方法で実装していましたが、 "ビルドトリガー"セクションを見て、子供の仕事に "他のプロジェクトがビルドされた後でビルド"をマークすることができます。両親が正常に終了したら、子供の仕事を築くことができます。がんばろう! – Dvir669

答えて

1

これは、jenkins pipeline pluginを使用して行うことができます。ここにコード例があります:

parallel firstJob: { 
     node { 
      echo "Build parent-job-1" 
      build 'parent-job-1' 
     } 
    }, secondJob: { 
     node { 
      echo "Build parent-job-2" 
      build 'parent-job-2' 
     } 
    } 

node {  
    echo "Build child-job" 
    build 'child-job' 
} 
+0

私は制御親ジョブを禁止します。別のチームによって管理されています。 –

+0

セクションビルドトリガーを追加することができます:他のプロジェクトがビルドされ、親ジョブが追加された後でビルドします。 – krynio

+0

子ジョブを開始する前に親ジョブの両方を完了する必要があります。 –

関連する問題