【发布时间】:2018-01-12 18:50:49
【问题描述】:
如果使用部署挂钩执行 Ghost Inspector 测试失败,是否可以中止 Heroku 部署?我知道部署钩子不会等待钩子的回答,但是有什么方法可以实现吗?
【问题讨论】:
标签: heroku deployment ghost-inspector
如果使用部署挂钩执行 Ghost Inspector 测试失败,是否可以中止 Heroku 部署?我知道部署钩子不会等待钩子的回答,但是有什么方法可以实现吗?
【问题讨论】:
标签: heroku deployment ghost-inspector
您可以利用发布阶段,它允许您在部署应用的新版本之前运行任何脚本。
首先,您需要将这样的行添加到您的Procfile
release: bin/check-ghost-inspector-test
这是假设您的项目中有bin 目录和可执行脚本check-ghost-inspector-test。此脚本将在应用程序构建、配置变量更改、回滚等之后运行。如果脚本返回状态 0,您的应用程序将被部署。否则,发布阶段将失败,您的应用将无法部署。
知道您应该实施脚本来轮询 Ghost Inspector 以了解您的测试的当前状态。如果测试成功,则以状态 0 退出。如果失败,则以除 0 以外的任何状态退出。我想可以通过某些 Ghost Inspector api 发送提交 sha 来获取测试运行状态。您必须选择在您的测功机上获取当前提交 sha:
heroku labs:enable runtime-dyno-metadata -a <app name> 启用 dyno 元数据实验室功能。这会将几个配置变量注入您的测功机。其中之一是HEROKU_SLUG_COMMIT。SOURCE_VERSION config var。这种方法的缺点是您需要通过配置变量为 Ghost Inspector API 传递一些凭据。
我能想到的另一个解决方案是为持续交付设置一些专用解决方案,并且仅在测试通过时才调用新部署。
【讨论】: