我有一个Jenkinsfile项目,要求我包括一个'if statement
,以确定某些方法中的shell命令是否返回0
之外的退出代码。
第一种方法method 1
可以正常工作。但是,我想包括一个if statement
来跳过第二阶段,因为method 2
中的shell命令不会以0
退出。
def method1(setup){
sh """
echo ${setup}
"""
}
def method2(setup){
sh """
ech ${setup}
"""
}
node {
stage('print method1'){
method1('paul')
}
// I need an if statement to skip this method since the if statement returns non=zero
stage('This method should be skipped'){
if(method2 returns != 0) //This if condition fails but need something similar to this
method1('paul')
}
}
在此方面的任何帮助都将受到赞赏。
答案 0 :(得分:3)
您在示例中使用默认的sh
步骤执行,这意味着该命令未返回退出代码。在这种情况下,如果存在状态不是0
之外的其他事物,则管道将失败,并发生异常。如果要返回退出状态并允许管道继续运行,则必须通过returnStatus: true
选项,例如:
int status = sh(script: """
echo ${setup}
""", returnStatus: true)
if (status != 0) {
// do something
}