2

Jenkins でシリアライズしたいジョブが 3 つあります。

それらをトリガーするジョブの後にブロックとして実行する必要があります。

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

現在、Job1 が 2 回トリガーされると、次の動作が発生します。

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)
4

3 に答える 3

2

Jenkins Locks and Latches プラグイン をご覧ください。

于 2012-04-03T21:37:17.657 に答える
2

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

Jenkins Parameterized Trigger プラグインを使用すると、追加のビルド ステップを使用できます。

他のプロジェクトでのビルドのトリガー/呼び出し

Job1 に 3 つのビルド トリガーを追加します。

ビルドするプロジェクト: JobA

[ x ] トリガーされたプロジェクトがビルドを完了するまでブロックする

ビルドするプロジェクト: JobB

[ x ] トリガーされたプロジェクトがビルドを完了するまでブロックする

ビルドするプロジェクト: JobC

[ x ] トリガーされたプロジェクトがビルドを完了するまでブロックする

Job2 で同じことを行います。

2 つのジョブ 1 と 2 の間で共有されるロックを追加します。

このようにして、ジョブ 1 とジョブ 2 がトリガーされると、お互いに待機します。また、すべてのジョブ A->B>C が実行されて成功するまで、各ジョブは合格としてマークされません。

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

Fail this build step if the triggered build is worse or equal to    

Mark this build as failure if the triggered build is worse or equal to  

Mark this build as unstable if the triggered build is worse or equal to 
于 2012-04-06T14:46:33.190 に答える
1

Jenkinsであなたがやりたいことを正確に行う方法を考えることはできません。たぶん、ジェンキンスはあなたのためのツールではありませんか?

これにアプローチする別の方法は次のとおりです。あなたの質問は実際にあなたの問題の解決策(一連のジョブとその実行順序)を提示し、それを実装する方法を尋ねています。

あなたはあなたの目標が何であるか、あなたが何を達成したいのかを喜んで説明しますか?たぶん、Jenkinsの専門家が、Jenkinsを使用してそれを行う方法を教えてくれるでしょう。

于 2012-04-04T20:19:28.373 に答える