如何使用闭包处理器停止Jenkins Pipeline构建

时间:2019-06-27 12:30:52

标签: jenkins groovy jenkins-pipeline jenkins-groovy

我如何让闭包停止中止的构建而不会出现故障?

在我最初的詹金斯档案中,我有这样的东西:

node() {
 println 'should print'
 if (shouldStop()) {
   return
 }
 println 'should NOT print'
}

# Output
should print

退出节点块会以当前具有的任何状态结束构建,并且不执行其他操作。

如果我在混合事物中有一个闭包,不需要的代码仍然会执行

withMyAction(closure) {
 def result
 try {
   prepareEnv()
   result = closure()
 } finally {
  cleanUp()
 }
 return result
}

node() {
 println 'should print'
 withMyAction {
  if (shouldStop()) {
    return
  }
 }
 println 'should NOT print'
}

# Output
should print
should NOT print

看来我的选择是

  • 通过throw new Exceptionerror()停止
  • 将工作的下游部分包裹在if status == ...

有没有一种方法可以让我提前停止构建而无需使用Jenkinsfile中的return作为方法?

0 个答案:

没有答案