4

是否可以使用CruiseControl.Net来设置构建场?我们目前有4个不同的构建机器在不同的时间构建不同的东西,并且有点头痛,以某种方式手动平衡负载。我更愿意将其中的一个指定为主构建机器,当它们空闲时,它们将工作委派给其他人员。使用ccnet构建农场

+0

您能给更多的上下文吗?如果你正在使用cc.net,你很可能试图通过签入触发的CI构建,不是吗?因此,对手动操作的引用使我感到困惑。 – yetanotherdave 2009-04-30 22:17:20

+0

好吧,我必须“手动”猜测哪个构建去哪个构建机器以平衡负载。显然这并不理想,因为这些项目的签入次数会随时间而变化,所以我最终会让一些构建机器过载,并且有些闲置。 – Grzenio 2009-05-01 08:44:27

回答

4

据我所知,在CruiseControl.Net中没有支持构建农场 - 至少不会按照您描述的方式进行操作。 CCNet对“农场”的解释似乎认为项目是手动分配给一台机器的,而一个给定的项目将始终建立在同一台机器上。

如果您想动态选择哪台机器实际执行构建,您需要创建自己的机制来选择该机器并触发构建。与此相关的可能会有相当多的复杂性。例如,如果在前一个提交仍在处理的情况下发生第二次提交,您可能需要确保同一项目不能同时在两台不同的机器上构建。

如果有一个所有构建机器都可以访问的共享位置,则可以使用Filesystem源代码管理块或CCNet的ForceBuild机制在指定机器上启动构建,但让所有构建机器发布它们输出给定的项目到相同的最终位置。