如何在Groovy中检查方法是否返回非零退出代码

时间:2018-08-25 20:14:49

标签: groovy jenkins-pipeline

我有一个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')
    }
}

在此方面的任何帮助都将受到赞赏。

1 个答案:

答案 0 :(得分:3)

您在示例中使用默认的sh步骤执行,这意味着该命令未返回退出代码。在这种情况下,如果存在状态不是0之外的其他事物,则管道将失败,并发生异常。如果要返回退出状态并允许管道继续运行,则必须通过returnStatus: true选项,例如:

int status = sh(script: """
    echo ${setup}
""", returnStatus: true)

if (status != 0) {
    // do something
}

来源:sh step pipeline documentation