【问题标题】:Can I abort a Heroku deployment if Ghost Inspector fails?如果 Ghost Inspector 失败,我可以中止 Heroku 部署吗?
【发布时间】:2018-01-12 18:50:49
【问题描述】:

如果使用部署挂钩执行 Ghost Inspector 测试失败,是否可以中止 Heroku 部署?我知道部署钩子不会等待钩子的回答,但是有什么方法可以实现吗?

【问题讨论】:

    标签: heroku deployment ghost-inspector


    【解决方案1】:

    您可以利用发布阶段,它允许您在部署应用的新版本之前运行任何脚本。

    首先,您需要将这样的行添加到您的Procfile

    release: bin/check-ghost-inspector-test
    

    这是假设您的项目中有bin 目录和可执行脚本check-ghost-inspector-test。此脚本将在应用程序构建、配置变量更改、回滚等之后运行。如果脚本返回状态 0,您的应用程序将被部署。否则,发布阶段将失败,您的应用将无法部署。

    知道您应该实施脚本来轮询 Ghost Inspector 以了解您的测试的当前状态。如果测试成功,则以状态 0 退出。如果失败,则以除 0 以外的任何状态退出。我想可以通过某些 Ghost Inspector api 发送提交 sha 来获取测试运行状态。您必须选择在您的测功机上获取当前提交 sha:

    1. 通过运行 heroku labs:enable runtime-dyno-metadata -a <app name> 启用 dyno 元数据实验室功能。这会将几个配置变量注入您的测功机。其中之一是HEROKU_SLUG_COMMIT
    2. 添加this buildpack,它将注入SOURCE_VERSION config var。

    这种方法的缺点是您需要通过配置变量为 Ghost Inspector API 传递一些凭据。

    我能想到的另一个解决方案是为持续交付设置一些专用解决方案,并且仅在测试通过时才调用新部署。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-07-01
      • 2013-04-08
      • 2016-02-21
      • 2014-11-07
      • 1970-01-01
      相关资源
      最近更新 更多