我正在设置下面提到的Jenkins管道。如果第一个阶段失败了,我的构建就会中止,但我想要执行第一个阶段和阶段中提到的步骤。
pipeline {
agent none
stages {
stage("build and test the project") {
agent {
docker "coolhub/vault:jenkins"
}
stages {
stage("build") {
steps {
sh 'echo "build.sh"'
}
}
stage("test") {
steps {
sh 'echo "test.sh" '
}
}
}
}
}
}我想执行第一个阶段和步骤,这是在阶段中提到的。毕竟,阶段得到执行,然后最终需要中止Jenkins作业,并显示失败的阶段和步骤。
发布于 2019-02-05 18:18:49
是的,除了脚本中的try catch块之外,目前还没有其他方法可以做到这一点。更多信息请点击这里:Ignore failure in pipeline build step。
stage('someStage') {
steps {
script {
try {
build job: 'system-check-flow'
} catch (err) {
echo err
}
}
echo currentBuild.result
}
}发布于 2019-07-11 18:01:04
在hakamairi的回答中,阶段没有标记为失败。现在可以失败一个阶段,继续执行管道并选择构建的结果:
pipeline {
agent any
stages {
stage('1') {
steps {
sh 'exit 0'
}
}
stage('2') {
steps {
catchError(buildResult: 'SUCCESS', stageResult: 'FAILURE') {
sh "exit 1"
}
}
}
stage('3') {
steps {
sh 'exit 0'
}
}
}
}在上面的示例中,所有阶段都将执行,管道将成功,但阶段2将显示为失败:

正如您可能已经猜到的那样,您可以自由选择buildResult和stageResult,以防您希望它不稳定或其他任何情况。您甚至可以使构建失败并继续执行管道。
只需确保您的Jenkins是最新的,因为这是一个相当新的功能。
https://stackoverflow.com/questions/54529874
复制相似问题