Opt*_*mus 8 bash amazon-web-services aws-codebuild
我的 buildspec.yml 文件中有一个 AWS CodeBuild 模板,构建部分包含以下行:
- if [ "${STAGE}" = "alpha" ]; then echo "Quitting alpha build." && exit 0; fi
Run Code Online (Sandbox Code Playgroud)
我的期望是,如果 $STAGE 变量设置alpha为成功完成,则构建应该退出构建。但是,它会转到下一行。
如果我将退出代码更改为1,则构建将按预期失败。
有什么想法如何像这样提前结束构建,这条线有明显的错误吗?
想象一下您的代码行在子 shell 中运行。返回值是最后一条命令的代码。无论test( [) 是否返回非零,都会if返回零,除非您以其他方式退出。换句话说,没有办法区分“$STAGE不存在”alpha和“不存在” exit 0。因此,如果您想提前终止,则必须以非零代码退出。
小智 5
因此,如果您想提前终止,则必须以非零代码退出。
感谢您的回答,其真正的 exit 0 在 buildspec.yml 中没有任何影响
我遇到了同样的情况并且正在搜索几个小时,但这里的发现还表明需要停止具有 BUILD State: SUCCEEDED 的 CodeBuild,否则您只能在退出 1 时过早地获得 BUILD State: FAILED
但不幸的是,FAILED 状态会干扰 AWS CodePipeline 中的以下 CodeBuild,因此希望 AWS 将来能够提供“过早成功退出”,这对我的情况也有帮助
| 归档时间: |
|
| 查看次数: |
3468 次 |
| 最近记录: |