2012-10-21 99 views
1

是否有支持項目之間相關性的正確DAG(直接非循環圖)的任何CI服務器(CruiseControl,Jenkins,Hudson,...)?即:具有項目依賴性的CI服務器DAG

假設您有一個公用庫項目A,兩個使用A但彼此獨立的實用庫項目B和C以及一個使用B和C兩者的程序項目D.在CruiseControl中。 rb(我目前使用的),指定B依賴於A,C依賴於A,D依賴於B和C是微不足道的。

如果有人提交到B或C,則CC。 rb將構建它,然後按預期構建D。但是如果有人犯下了A,CC.rb將會構建A,然後同時構建B和C--到目前爲止,這麼好。但是,假設B完成第一個建築;在這一點上,CC.rb會急切地去開始構建D,這很可能會失敗,並且無論如何都是浪費時間,因爲當C完成構建時,CC.rb會再次構建D(這是構建我們真的想要)。

我知道這種行爲不是特定於CC.rb的;如果CI服務器一次只考慮一個項目的依賴關係,它似乎是固有的。我在尋找的是一個CI服務器,它足夠聰明,可以確定D依賴於B和C,並且堅持構建它,直到完成使用相同版本的A的構建。或換句話說,CI服務器如果每個項目都是單一製作行爲,那麼該行爲與「make -j」所做的行爲類似。

有沒有這樣的野獸?

回答

1

至少在詹金斯,就業機會(或項目,如果你想打電話給他們)甚至可以以各種方式觸發其他工作,即使是開箱即用,特別是plugins。顯然這裏很重要,有可能「join」構建不同的工作,這樣在兩個不同的工作完成後,第三個工作被觸發

我認爲你可以很容易地構建你描述的系統與詹金斯(以及哈德森,沒有太大的區別呢)。

相關問題