阶段失败但在 Jenkins 中将构建结果保持为成功
Failing a stage but keeping build result as Successful in Jenkins
我有以下代码作为 Jenkins 脚本管道:
node {
stage('Stage 1') {
echo "1"
}
stage('Stage 2') {
catchError(buildResult: 'SUCCESS', stageResult: 'FAILURE') {
sh "exit 1"
}
}
stage('Stage 3') {
echo "3"
}
}
}
这在 Jenkins 中成功生成了我想要的结果,也就是说,我希望构建成功但 stage 2
失败。
我不明白 sh "exit 1"
到底在做什么。如果我在这里做任何其他事情,Stage 2
不会被标记为“失败”。 sh "exit 1"
在这里做什么?
exit 1
是 shell 脚本中的退出代码,这意味着 捕获所有一般错误
此处参考本指南Exit Codes With Special Meanings
因此,在管道阶段,您已将 sh "exit 1"
放入 catchError 块中,这意味着它将以 退出代码 1 退出 shell 脚本(即任何一般错误)和 catchError
块将捕获导致特定阶段失败但构建结果通过的错误。
我有以下代码作为 Jenkins 脚本管道:
node {
stage('Stage 1') {
echo "1"
}
stage('Stage 2') {
catchError(buildResult: 'SUCCESS', stageResult: 'FAILURE') {
sh "exit 1"
}
}
stage('Stage 3') {
echo "3"
}
}
}
这在 Jenkins 中成功生成了我想要的结果,也就是说,我希望构建成功但 stage 2
失败。
我不明白 sh "exit 1"
到底在做什么。如果我在这里做任何其他事情,Stage 2
不会被标记为“失败”。 sh "exit 1"
在这里做什么?
exit 1
是 shell 脚本中的退出代码,这意味着 捕获所有一般错误
此处参考本指南Exit Codes With Special Meanings
因此,在管道阶段,您已将 sh "exit 1"
放入 catchError 块中,这意味着它将以 退出代码 1 退出 shell 脚本(即任何一般错误)和 catchError
块将捕获导致特定阶段失败但构建结果通过的错误。