Continuous Integration pipeline如何触发on_failure步骤且不报错
CI Pipeline 手动触发任务失败解决方案
核心结论
所有符合POSIX标准的shell环境及主流CI系统(GitLab CI、GitHub Actions、Jenkins、Concourse等)均遵循统一的退出码规则:
- 退出码为
0:判定为任务执行成功 - 退出码为
1~255之间的整数:判定为任务正常失败,会自动触发你配置的on_failure步骤,不会被标记为异常报错状态
具体实现方式
你可以直接在run步骤的脚本中对应位置执行exit 1即可手动触发任务失败,示例如下:
# 你的正常业务逻辑 echo "开始执行任务步骤" # 满足失败条件时主动退出,1是最常用的自定义失败退出码,也可替换为2~255之间的其他数值区分失败原因 if [ 你的失败判断条件 ]; then echo "触发手动失败逻辑" exit 1 fi
避坑提示
- 不要使用小于0或大于255的数值作为退出码,这类非法退出码会被CI系统判定为脚本执行异常,也就是你之前遇到的「报错状态」
- 避免通过
set -e后执行错误命令的方式触发退出,部分CI系统会将这类非主动退出判定为异常,主动调用exit返回非0值是最稳妥的实现方式
内容的提问来源于stack exchange,提问作者Nesan Mano
相关产品推荐
相关产品推荐

