나는 당신이 원하는 것을 정확히 할 수있는 방법을 모른다. 그러나 나는 당신이 75 % -100 %를 얻을 수있는 뭔가를 할 수 있다고 생각한다. (오류가 발생할 때 나중의 단계에서 일어날 일에 따라 다르다.)
pipeline {
stages {
stage('Do work') {
steps {
stepsChuckNorrisWrote {
...
}
}
}
}
}
그런 다음 stepsChuckNorrisWrote
이라는 공유 라이브러리에 전역 변수를 만듭니다. 여기에 클로저를 전달하고 있습니다. 이 클로저에는 원하는 모든 단계가 포함될 수 있습니다. 클로저의 실행을 try/catch로 감싸고 실패하지 않게하십시오. 이 같은
뭔가 :이 방법
// vars/stepsChuckNorrisWrote.groovy
def call(Closure body) {
node('windows') {
try {
body()
} catch (all) {
// handle errors here
}
}
}
, 곧 첫 번째 단계가 실패로, 다른 사람의 아무도는 계속되지 않습니다. 클로저에서 각 단계를 끌어 와서 본질적으로 try/catch로 감쌀 수있는 방법이있을 수 있지만 그런 방법을 모릅니다.
감사합니다. 롭, 그게 유일한 방법 일 거라고 생각합니다. 나는'steps' 부분을 작성할 필요성을 없애고 싶었지만 코드를 살펴보면 가능하지 않다고 제안했다. –