您的管道很可能看起来像这样:
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步骤中,以免阻塞执行程序。一个非常相似的情况是使用该
input步骤等待用户反馈时。
取而代之的是,您的管道应如下所示,这就是(可以这么说)最佳实践(因为您不会阻塞执行程序):
stage('build') { node { // sh "make" }}// ornode { stage('build') { // sh "make" } stage('unit') { // sh "make" }} // node// note: the following pre 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']]}
无需将
build步骤包装在内
node,即,为其阻塞执行器。对于其他步骤(如
sh),管道执行将触发错误并提醒您不能在
node分配之外运行。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)