Jenkinsジョブの実行を開始することは可能ですかいくつかの設定を開始できなかった場合、「親」ジョブはすべてが開始されるまで待機します同期?Jenkinsジョブを同時に起動する
ジョブを開始するためのプラグインはすでにMatrix ProjectとPipelineですが、すべての設定を同時に開始できるようになるまで実行をフリーズする可能性があります。
Jenkinsジョブの実行を開始することは可能ですかいくつかの設定を開始できなかった場合、「親」ジョブはすべてが開始されるまで待機します同期?Jenkinsジョブを同時に起動する
ジョブを開始するためのプラグインはすでにMatrix ProjectとPipelineですが、すべての設定を同時に開始できるようになるまで実行をフリーズする可能性があります。
は、パイプラインでは、あなたは、それは一般的に良いアイデアではありません(未テスト)
def count = 0
parallel a: {
node {
count++
waitUntil {count == 3}
sh 'make CONFIG=a'
}
}, b: {
node {
count++
waitUntil {count == 3}
sh 'make CONFIG=b'
}
}, c: {
node {
count++
waitUntil {count == 3}
sh 'make CONFIG=c'
}
}
ような何かを行うことができます。
あなたの提案に基づいて私は単純なパイプライン[スクリプト](https://github.com/luka5z/jenkinsci-workflow-plugin-examples/blob/master/jobs/parallel-waituntil.groovy)を書いています。すべてのノードが使用可能になるまで待機するだけでなく、タイムアウトセクションの周りにもノードをラップします。 – luka5z
ニース。ヒント:単純なJavaの 'InterruptedException'を' catch'することでおそらく十分である場合、 'FlowInterruptedException'をインポートする必要はありません。おそらく 'manager.build.doStop()'(つまり、 'currentBuild.rawBuild.doStop()')を 'parallel'ステップに' failFast:true'を追加すると、sandboxに優しい 'throw e'で置き換えることができます。 –
私はthisがあなたを助けてくれるかもしれないと思います。あなたが効果的に3つのすべてのノードが同時にロックするのを待つデッドロックすることができますので、
すべての設定を同時に開始できるようになるまで、_freezeの実行が意味することをより正確に説明できますか?すべてのブランチが同時に開始され、すべてのエグゼキュータスロットが同時に使用可能になるのを待っていることを意味しますか?どうして? –
@ JesseGlick私はいくつかのノードまたはエグゼキュータを横断して実行される分散システムをテストしたいと思います。これを行うには、Jenkinsにビルドを制御し、デッドロックが発生した場合にタイムアウトのしきい値を設定したいと思います。おかげさまで – luka5z