【问题标题】:Build farms using ccnet使用 ccnet 建立农场
【发布时间】:2009-04-30 15:30:56
【问题描述】:

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

【问题讨论】:

  • 您能提供更多背景信息吗?如果您使用的是 cc.net,您可能会尝试由签入触发的 CI 构建,不是吗?因此,对手动操作的引用让我感到困惑。
  • 好吧,我必须“手动”猜测哪个构建进入哪个构建机器以平衡负载。显然这并不理想,因为这些项目的签入次数会随时间变化,所以我最终会导致一些构建机器过载,而有些则处于空闲状态。

标签: continuous-integration build-automation cruisecontrol.net grid-computing


【解决方案1】:

据我所知,CruiseControl.Net 不支持构建农场 - 至少不是按照您描述的方式操作。 CCNet 对“农场”的解释似乎假设项目是手动分配给机器的,并且给定的项目将始终构建在同一台机器上。

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

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

【讨论】:

  • 我刚刚想起了 JetBrains TeamCity。我相信这确实支持您描述的构建农场,专业版最多免费支持三个“构建代理”(机器)和 20 个“构建配置”(我将其视为项目)。如果这听起来很有趣,请参阅jetbrains.com/teamcity/buy/buy.jsp#professional 了解他们的推销。我没有使用过 TeamCity,也无法评论它的效果如何,但我对 JetBrains 产品的体验总体上是积极的。
  • 我最终去了 Team City - 强烈推荐。它20年的发展比CCNet还要好。我会说 CCNet 永远赶不上。
【解决方案2】:

请参阅load-Balancing the Build Farm with CruiseControl.NET 博文了解可能的解决方案

【讨论】:

    猜你喜欢
    • 2010-09-21
    • 1970-01-01
    • 2022-01-01
    • 2017-10-13
    • 2011-12-21
    • 1970-01-01
    • 2015-06-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多