首页 > 解决方案 > 如何在 aws codebuild 中基于 $CODEBUILD_BUILD_SUCCEEDING 环境变量使构建失败?

问题描述

我正在尝试根据构建后的条件将 aws codebuild 中的变量 $CODEBUILD_BUILD_SUCCEEDING 设置为 0 以使构建操作失败,但它并没有失败。(尽管在后期构建期间按预期分配了值)

这是后期构建部分

var=$(<test_result.txt) |  [ "$var" == "failed" ] && CODEBUILD_BUILD_SUCCEEDING=1 || CODEBUILD_BUILD_SUCCEEDING=0
echo "The value is ...."
echo $CODEBUILD_BUILD_SUCCEEDING

标签: amazon-web-servicescontinuous-integrationdevopsaws-codebuild

解决方案


但它并没有失败(尽管在构建后按预期分配了值)

非零值CODEBUILD_BUILD_SUCCEEDING不会导致构建失败。非零退出代码将执行此操作。当CODEBUILD_BUILD_SUCCEEDING你想在 post_build 中做某事时使用 ,这取决于构建阶段是否失败。

如果您只想使构建失败,您可以使用exit 255或 post_build 中的任何非零值(非零时CODEBUILD_BUILD_SUCCEEDING)。

例如,您可以添加 post_build

[[ $CODEBUILD_BUILD_SUCCEEDING != 0 ]] && exit 255 || echo "post_build execution continues"

推荐阅读