2017-08-04 58 views

回答

1

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

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

release: bin/check-ghost-inspector-test 

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

知道您应该实施该脚本来为您的测试的当前状态轮询Ghost Inspector。如果测试成功,退出时状态为0.如果你有失败,退出的状态不为0。我猜测可以通过发送commit sha来通过一些Ghost Inspector API获取测试运行状态。你必须选择,让电流在您提交赛道SHA:

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

这种方法的缺点是,您需要通过config vars传递Ghost Inspector API的一些凭据。

我能想到的另一个解决方案是为Continuous Delivery设置一些专用解决方案,并且只有在测试通过时调用新部署。

+0

甜,感谢您的详细解答! – Cojones