2017-10-27 3 views
0

새로운 jenkins 선언적 파이프 라인 구문을 사용하여 sh 스크립트 실행의 반환 상태를 테스트하고 싶습니다. 스크립트 단계를 사용하지 않고도 가능합니까? (작업)jenkins 선언적 파이프 라인 new 구문을 사용하여 sh 스크립트 반환 상태를 테스트하는 방법

스크립트 파이프 라인 :

... 
stage ('Check url') { 
    node { 
    timeout(15) { 
     waitUntil { 
     sleep 20 
     def r = sh script: "wget -q ${CHECK_URL} -O /dev/null", returnStatus: true 
     return (r == 0); 
     } 
    } 
    } 
} 

선언 파이프 라인 (시도) :

... 
     stage('Check url'){ 
     steps { 
      timeout(15) { 
       waitUntil { 
        sleep 20 
        sh script: "wget -q ${CHECK_URL} -O /dev/null", returnStatus: true == 0 
       } 
      } 
     } 
    } 

로그 : java.lang.ClassCastException가 : 몸 반환 null 값이 때문에

+0

첫 번째 예제에서와 같이'script {}'에 래핑 (wrapping)하지 않고 비교하는 방법이 없다고 생각합니다. 셸이 정수 만 반환하도록하는 방법은 없으며 스크립트에 있지 않아도 정수를 부울로 강제 변환 할 방법이 없습니다. –

+0

동의합니다. 조금 더 많은 로직을 가진 모든 것은'script' 블록을 필요로합니다. 그것이 존재하는 이유입니다. – StephenKing

답변

1

을 부울되지 않는다 스크립트 블록 없이는 불가능합니다.

... 
stage('Check url'){ 
     steps { 
      script { 
       timeout(15) { 
        waitUntil { 
         sleep 20 
         def r = sh script: "wget -q ${CHECK_URL} -O /dev/null", returnStatus: true 
         return r == 0 
        } 
       } 
      } 
     } 
    }