我在buildspec.yml文件中有一个AWS CodeBuild模板,在构建部分有以下行:
- if [ "${STAGE}" = "alpha" ]; then echo "Quitting alpha build." && exit 0; fi
我的期望是,如果$STAGE变量设置为alpha
并成功完成,那么构建应该退出构建。但是,它会转到下一行。
如果我将退出代码更改为1
,那么构建将在该点失败,正如预期的那样。
有什么想法可以像这样过早地结束构建,这条线是否有明显的问题?
因此,如果您想提前终止,则必须使用非零退出密码
感谢这个答案,它的真正出口0在buildspec.yml 中没有任何影响
我也遇到过同样的情况,搜索了几个小时,但这里的这个发现也表明需要停止具有BUILD State的CodeBuild:SUCCEDED,否则你只能过早地获得BUILD State:FAILED when exit 1
但不幸的是,FAILED状态扰乱了AWS CodePipeline中的以下CodeBuilds,因此希望AWS能够提供";过早成功退出";将来,对我的情况也会有帮助
想象一下您的代码行在子shell中运行。返回值是最后一个命令的代码。无论test
([
(是否返回非零,if
都返回零,除非您使用其他内容退出。换句话说,没有办法区分不是alpha
的$STAGE
和exit 0
。因此,如果您想提前终止,则必须使用非零代码退出。