jenkins - 在 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 脚本中的退出代码,表示捕获所有一般错误
此处参考本指南具有特殊含义的退出代码
因此,在管道阶段,您已将catchErrorsh "exit 1"
块放入其中,这意味着它将以退出代码 1退出 shell 脚本(即任何一般错误),并且该块将捕获导致特定阶段失败但构建结果的错误经过。catchError
推荐阅读
- snowflake-cloud-data-platform - 所有列中的雪花计数为空
- python - 寻找提高 Keras 模型精度的方法和经验
- clickhouse - 使用复制表重命名数据库
- python - “ManyToManyDescriptor”对象不可迭代
- android - 我想通过 android 服务中的活动类在应用程序类的帮助下触发通知
- visual-studio-code - 具有特定名称的文件夹的 vscode 图标
- c - 每个文件都需要 Visual Studio #include "file.c"
- flutter - 带有长文本标题的颤动 listTile
- reactjs - 错误:未捕获 [TypeError: Cannot read property 'map' of undefined] react testing library
- apache - 为什么在 LetsEncrypy 更改 index.html 位置后 Lightsail bitnami