amazon-web-services - CodeBuild 显示成功;但是,使用 Packer 时应该说 FAILED
问题描述
我遇到了一个我知道与我的buildspec.yml
文件有关的问题:
phases:
install:
runtime-versions:
python: 3.8
pre_build:
commands:
- echo "Installing Packer"
- curl -o packer.zip https://releases.hashicorp.com/packer/1.7.2/packer_1.7.2_linux_amd64.zip && unzip packer.zip
- echo "Validating Packer template"
- ./packer validate pipeline/build/${FUNCTION}-build.json
build:
commands:
- ./packer build -color=false pipeline/build/${FUNCTION}-build.json | tee build.log
post_build:
commands:
# Get the ARN of our Lambda notifier
- SLACK_ARN=$(aws cloudformation list-exports | jq -r '.["Exports"][] | select(.Name == "notify_slack_arn") | .Value')
# Send a Slack notification
- |
if [ "${CODEBUILD_BUILD_SUCCEEDING}" -eq 1 ]
then
aws lambda invoke --cli-binary-format raw-in-base64-out --function-name ${SLACK_ARN} --payload "{ \"LambdaInvokeEvent\": { \"message\": \"Daily AMI Build for ${FUNCTION} SUCCESSFUL!\", \"slack_url\": \"${SLACK_URL}\" } }" slack_output.log
else
aws lambda invoke --cli-binary-format raw-in-base64-out --function-name ${SLACK_ARN} --payload "{ \"LambdaInvokeEvent\": { \"message\": \"Daily AMI Build for ${FUNCTION} FAILED!\", \"slack_url\": \"${SLACK_URL}\" } }" slack_output.log
fi
- echo "Build completed on $(date)"
artifacts:
files:
- "**/*"
discard-paths: no
因此,根据我在 CodeBuild 中构建的代码,会发生以下情况:
即使它失败了,CodeBuild 说成功了,这让我发疯了!假设失败并发出失败通知。这与我的buildspec.yml
文件或正在运行的 bash 脚本有关吗?谢谢!
解决方案
我认为这是因为您的| tee build.log
. 打包器失败,但 tee 工作,因此这是执行的最后一个命令,构建阶段成功。
推荐阅读
- java - 如何从 Java 程序运行 Linux 命令“netstat”?
- node.js - 在 Heroku 应用程序中以 express 形式提供静态文件
- python - Python不能腌制getset_descriptor
- ios - 使用 alamofire 和 swiftyJson 从 UICollectionViewCell 内的 UICollectionView 的 api 中获取数据
- java - 我应该一起使用@NotNull 和@NonNull 吗?
- android - Android Size Analyzer 插件 - WebP 转换设置
- c++ - GCC 会优化掉内联访问器吗?
- java - 将应用设置为主启动另一个实例
- paypal - PayPal Payflow 重定向到 Express Checkout,而不是显示带有卡字段的 Hosted Checkout 页面
- android - 从 YUV_420_888 图像中获取 RGB 值