7

使用新的 jenkins 声明性管道语法,我想测试 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 不是布尔值

4

1 回答 1

4

由于没有脚本块是不可能的,我们得到类似的东西:

...
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
                    }
                }
            }
        }
    }
于 2017-10-30T10:15:35.577 回答