2017-10-19 7 views
-1

젠킨스 선언 파이프 라인에 steps 내 자신의 변형을 만들 수있을 것입니다, 그래서 내가 말할 수 :내가 궁금하네요

pipeline { 
    stages { 
    stage('Do work') { 
     stepsChuckNorrisWrote { 
     ... 
     } 
    } 
    } 
} 

을 내가 '무엇 찾고있는 것은 실패하더라도 빌드가 실패하지 않는 단계를 작성하는 우아한 방법입니다.

답변

1

나는 당신이 원하는 것을 정확히 할 수있는 방법을 모른다. 그러나 나는 당신이 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로 감쌀 수있는 방법이있을 수 있지만 그런 방법을 모릅니다.

+0

감사합니다. 롭, 그게 유일한 방법 일 거라고 생각합니다. 나는'steps' 부분을 작성할 필요성을 없애고 싶었지만 코드를 살펴보면 가능하지 않다고 제안했다. –