2012-04-03 71 views
2

Jenkinsでシリアル化したい3つのジョブがあります。Jenkinsでジョブをグループ化するか、シリアライズするかシーケンスで実行する

彼らはそれらをトリガーするジョブの後にブロックとして実行する必要があります:ジョブ1を二回トリガされたとき、私は次のような動作を得る今

Job1 -> [A,B,C] 
Job2 -> [A,B,C] 

Order that jobs are run now: 
-Job1 
-Job2 
-A 
-B 
-(job A or C) 
-Order is not guaranteed after this 

私はしたいと思いますどのような参照:

Order that jobs are run: 
-Job1 
-Job2 
-A (from Job1) 
-B (from Job1) 
-C (from Job1) 
------------ 
-A (from Job2) 
-B (from Job2) 
-C (from Job2) 

答えて

2

だから、これは私が見つけた解決策である:

プラグインジェンキンスパラメータ化されたトリガを使用するには、余分なビルドステップが提供されています:

トリガー/コールは、他のプロジェクトに基づいています

ジョブ1では、ビルドトリガーを3つ追加します。

ビルド対象プロジェクト:ジョブA

[X】ブロックトリガーされたプロジェクトは を終えるまで、それらの

プロジェクトのビルドするためのビルド:JOBB

を[X】ブロックトリガーのプロジェクトは を終えるまで、それらの

を構築します

ビルド対象プロジェクト:ジョブC

[X】ブロックトリガーのプロジェクトまで を終える彼らはJOB2に同じ操作を行います

を構築します。

は、2つのジョブ1と2

ジョブ1とジョブ2が、彼らはお互いのために待機しますトリガされ、この方法の間で共有されているロックを追加します。すべてのジョブA→B> Cが実行されて成功するまで、各ジョブは合格とマークされません。

トリガーされたジョブの結果に依存するか、結果に関係なく続行する必要があるかにかかわらず、各ビルドステップの戻り値を制御するオプションがあります。

2

Jenkins Locks and Latches pluginをご覧ください。

+0

ロックを使用すると、ジョブのどれも同時に実行されないことが保証されます。しかし、彼らが連続して動作することを確認する方法はありません。私がロックの使用について何かを混乱させていない限り。 ジョブA、B、Cを順番に呼び出し、すべてが終了するまで成功しないジョブを作成する方法があった場合、そのジョブはロックを取得できます。 へ: '(A)>(B)、夜間走行で once'すべてのテストを実行 - '(A)のセットアップマシンは: –

1

私はジェンキンスであなたが望むものを正確に行う方法を考えることはできません。たぶんジェンキンスはあなたのためのツールではないでしょうか?

これにアプローチするもう1つの方法は、あなたの質問は実際にあなたの問題(仕事と実行命令の束)に対する解決策を提示し、それを実装する方法を尋ねています。

あなたの目標は何ですか、あなたは何を達成したいのですか?多分、ジェンキンスの専門家の中には、ジェンキンスを使ってどのようにできるのかを教えてくれる人もいます。

+0

ジョブ1は、私がしたい各コードレビューに、ヘリットでトリガーですマシンをセットアップする - >(B)すべてのテストを一度実行する - >(C)すべてのテストを数回実行する ' –

関連する問題