如何解决使用成功代码提前退出 CodeBuild
我在 buildspec.yml 文件中有一个 AWS CodeBuild 模板,在构建部分中有以下行:
- if [ "${STAGE}" = "alpha" ]; then echo "Quitting alpha build." && exit 0; fi
我的期望是,如果 $STAGE 变量设置为 alpha
并成功完成,构建应该退出构建。但是,它会转到下一行。
任何想法如何像这样过早地结束构建,这条线是否有明显的问题?
解决方法
如果你的行没有错别字,那么我们看到的代码部分:
[ "${STAGE}" = "alpha" ]
实际上应该是:
[ "${STAGE}" == "alpha" ]
,
想象一下您的代码行在子 shell 中运行。返回值是最后一条命令的代码。无论 test
([
) 是否返回非零,if
都会返回零,除非您以其他方式退出。换句话说,没有办法区分 $STAGE
不是 alpha
和 exit 0
。因此,如果您想提前终止,则必须以非零代码退出。
所以如果你想提前终止,你必须以非零值退出 代码。
感谢您的回答,其真正的 exit 0 在 buildspec.yml 中没有影响
我遇到了同样的情况并且正在搜索数小时,但这里的发现还表明需要停止带有 BUILD 状态的 CodeBuild:成功 否则您只能过早地获得 BUILD 状态:退出时失败1
但不幸的是,FAILED 状态会干扰 AWS CodePipeline 中的以下 CodeBuild,因此希望 AWS 将来可以提供“过早成功退出”,对我的情况也有帮助
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。