2017-08-04 56 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