提前退出 CodeBuild

Exit early from CodeBuild

我正在尝试优化 CodeBuild 规范并检查 docker 图像是否已存在于存储库中,然后退出构建阶段。根据文档版本 0.2 在单个 shell 的一个阶段执行所有命令,因此我认为 exit 0 应该可以解决问题,但它似乎不起作用。

aws ecr describe-images --repository-name $ECR_REPO_NAME --image-ids=imageTag=$TAG 2>&1 > /dev/null && echo 'Image already exists' && exit 0 || true

这会打印“图像已存在”,但构建会继续。

如果您使用exit 0,则表示CodeBuild 中的这一步成功,CodeBuild 将继续下一步。返回 exit 1 是没有选择的,因为这将显示您的构建失败。

您可以编写一个脚本来检查图像是否存在,如果失败则执行构建步骤。然后只需 运行 这个脚本作为构建管道的一部分。脚本将快速退出(如果图像存在),或者构建并上传图像。