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

如何使用闭包处理器停止Jenkins管道构建,jenkins,groovy,jenkins-pipeline,jenkins-groovy,Jenkins,Groovy,Jenkins Pipeline,Jenkins Groovy,如何让闭包在中止构建时停止构建,而不会看起来像失败 在我最初的Jenkins文件中,我有如下内容: node() { println 'should print' if (shouldStop()) { return } println 'should NOT print' } # Output should print 节点块的返回以当前的任何状态结束构建,并且不执行其他操作 如果混合中有一个闭包,那么不需要的代码仍然会执行 withMyAction(closure) {

如何让闭包在中止构建时停止构建,而不会看起来像失败

在我最初的Jenkins文件中,我有如下内容:

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
看来我的选择是

  • 通过
    抛出新异常停止
    错误()
  • 如果状态==…
是否有一种方法可以让我在不使用来自Jenkinsfile的
return
作为我的方法的情况下,优雅地提前停止构建