Как проверить, возвращает ли метод ненулевой код завершения в Groovy - PullRequest
0 голосов
/ 25 августа 2018

У меня есть проект Jenkinsfile, который требует, чтобы я включил 'if statement, чтобы выяснить, возвращают ли команды оболочки в определенных методах код выхода вне 0.

Первый метод method 1 работает как положено. Однако я хотел бы включить if statement, чтобы пропустить второй этап, так как эта команда оболочки в method 2 не завершается с 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 голосов
/ 26 августа 2018

Вы используете пошаговое выполнение по умолчанию sh в вашем примере, что означает, что код выхода не возвращается из команды.Если в этом случае существует существующее состояние, отличное от 0, конвейерный сбой за исключением.Если вы хотите вернуть статус выхода и позволить конвейеру продолжить работу, вы должны передать параметр returnStatus: true, например:

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

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

Источник: sh пошаговая документация конвейера

...