2012-10-21 65 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”构建不同的工作,这样在两个不同的工作完成后,第三个工作被触发

我认为你可以很容易地构建你描述的系统与詹金斯(以及哈德森,没有太大的区别呢)。

相关问题