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