はあなたのパイプラインは、最も可能性の高い次のようになります。
node {
stage('build') {
// sh "make"
}
// ...
stage('trigger-project-c') {
def job = build job: 'project-c', parameters: [[$class: 'StringParameterValue', name: 'MY_PARAM', value: 'somevalue']]
}
}
node
クロージャ内のすべてのものを包むことにより、下流の仕事project-c
がエグゼキュータを解放/上流のジョブが一時停止されることなく、インラインでトリガされます。
したがって、長い間本質的に何もしないものは、実行者をブロックしないように、node
のステップの中にラップするべきではありません。非常によく似たケースはusing the input
step to wait for user feedbackです。
代わりに、パイプラインはたとえば次のようになります。そう言うために - - である、次のようにベストプラクティス(あなたのエグゼキュータをブロックしないよう):
stage('build') {
node {
// sh "make"
}
}
// or
node {
stage('build') {
// sh "make"
}
stage('unit') {
// sh "make"
}
} // node
// note: the following code is _not_ wrapped inside a `node` step
stage('trigger-project-c') {
def job = build job: 'project-c', parameters: [[$class: 'StringParameterValue', name: 'MY_PARAM', value: 'somevalue']]
}
node
内build
ステップをラップする必要はありません、すなわち、のためにexecutorをブロックしますそれ。他のステップ(sh
など)では、パイプラインの実行によってエラーが発生し、node
割り当ての外で実行できないことを通知します。
説明をいただきありがとうございます。 –