Я внедряю блок try catch
на большинстве моих этапов внутри моего jenkins pipeline
, чтобы пропустить все последующие этапы, когда текущий этап завершился неудачно, однако один из моих этапов возвращает ошибку, но все еще продолжает выполнять следующийэтапы.
Я пытался использовать sh 'exit 1', currentStage.result = 'FAILED'
, если условие else для проверки результата этапа, но безрезультатно.
pipeline {
agent none
stages {
stage ('one') {
steps {
echo 'Next stage should be skipped if this stage fails'
script {
try {
sh '''#!/bin/bash -l
source ~/.nvm/nvm.sh
nvm use node
node somefile.js'''
}
catch (e) {
currentBuild.result = 'FAILURE';
throw e
}
}
}
}
stage ('two') {
steps {
echo 'This stage should be skipped if prior stage throws an erorr'
}
}
}
}
Я ожидаю, что второй этап будет пропущен, поскольку мой somefile.js
выдает ошибку.