2016-07-23 40 views
2

我有幾個(源)存儲庫。無論何時將提交推送到其中一個存儲庫,都必須觸發一個任務來構建源並將結果推送到另一個(目標)存儲庫。Phabricator構建的順序化和並行化

源代碼庫位於Phabricator中。目標存儲庫單獨託管。詹金斯可以訪問所有的存儲庫。

我所做的是:

  • 在詹金斯的一個項目,它通過參數化腳本將構建工作
  • 在Harbormaster一個構建規劃與Make HTTP Request生成步驟調用詹金斯
  • 導報規則,無論何時提交被推送到其中一個源代碼庫,都會觸發Harbourmaster構建計劃

如何才能確定一個源代碼庫的所有推送提交是按照正確的順序構建的?我怎麼能並行化幾個源代碼庫之間的構建?

我想避免的是Jenkins和/或Harbourmaster上的每個源代碼庫的一大堆安裝程序。

回答

0

簡短答案是Herald/Harbormaster確保流程訂單總是等於存儲庫中的提交順序。爲了防止非順序處理提交,您需要使用構建步驟Wait for Previous Commits to Build作爲構建步驟的依賴項。

要在多個存儲庫之間並行化處理,除了多個構建計劃之外,沒有其他可能性,其中每個構建計劃都要負責特定(不同的)存儲庫集。但是他們都可以在Jenkins使用一份工作,因爲Phabricator是唯一負責流程訂單的人。請參閱https://secure.phabricator.com/Q453