Как остановить сборку Jenkins Pipeline с использованием процессора закрытия - PullRequest
1 голос
/ 27 июня 2019

Как сделать так, чтобы закрытие остановило сборку как прерванную, не выглядя как сбой?

В моем исходном файле 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

Этокажется, что у меня есть варианты

  • Остановить через throw new Exception или error()
  • Обернуть мои нижестоящие разделы задания в if status == ...

Isесть подход, в котором я могу изящно остановить сборку на ранней стадии, не используя return из Jenkinsfile в качестве моего подхода?

...