У меня есть проект 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')
}
}
Любая помощь с этим очень ценится.





В вашем примере вы используете выполнение шага sh по умолчанию, что означает, что код выхода не возвращается из команды. Если существует статус, отличный от 0, в таком случае конвейер не работает с исключением. Если вы хотите вернуть статус выхода и позволить конвейеру продолжить работу, вам необходимо передать опцию returnStatus: true, например:
int status = sh(script: """
echo ${setup}
""", returnStatus: true)
if (status != 0) {
// do something
}
Источник: Документация по ступенчатому конвейеру sh