是否有支持項目之間相關性的正確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」所做的行爲類似。
有沒有這樣的野獸?