AWS的 'eb deploy' 命令总是返回返回码 0。

4

我在我的持续集成脚本中使用“eb deploy”命令。我遇到了2个问题:

  • 即使出现错误,“eb deploy”命令始终返回returncode 0。这破坏了我的部署流水线,因为没有办法检测到错误。

  • 它只在命令完成后才显示输出。

有没有办法使'eb deploy'像普通脚本一样工作并返回正确的错误码?


1
你并不孤单 https://forums.aws.amazon.com/message.jspa?messageID=713900。或许你可以向亚马逊寻求帮助,他们似乎已经帮助了那个人。你也可以解析原始文本输出,并查找失败/成功消息,而不是依赖退出代码。 - dotcomly
1个回答

7
这是一个已知问题,上游这里有相关报告。您可以通过使用grep来解决它,方法非常简单。不要再使用:
eb deploy 

使用grep获取成功字符串。如果找不到字符串,它会返回非零状态(即失败):

eb deploy | tee /dev/tty | grep "update completed successfully"

请注意我是如何使用tee命令确保输出结果能够在持续集成平台上查看(例如我的circleci)。

我的解决方案有些类似,尽管更加复杂且不太可靠:我将 'eb deploy' 包装在一个 shell 脚本中,并搜索 "ERROR:" 而不是 "update completed successfully"。谢谢! - andr111

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接