Hudson、CDash、CruisonControl、TeamCity 的持续集成/生成器比较

Posted

技术标签:

【中文标题】Hudson、CDash、CruisonControl、TeamCity 的持续集成/生成器比较【英文标题】:Comparison of Hudson, CDash, CruisonControl, TeamCity for Continuous Integration / Builder 【发布时间】:2011-02-27 05:34:12 【问题描述】:

我发现大多数人都在谈论 Hudson 以实现简单而免费的持续集成。现在我个人不喜欢它的界面,我觉得它很乱,而且我发现几乎没有人谈论 Cash -- 我喜欢 CMakeCTest 看起来也不错。

您能否为您最喜欢的持续集成服务器/构建器/测试器/仪表板简要描述其强弱决策点

以下是我听说过或使用过的免费(广义上指中小型项目)的列表:

CDash CruisonControl Hudson Jenkins - Hudson 前叉已在很大程度上取代了 Hudson。 TeamCity

环境:C++、C#、Python、php……可以多种多样。

PS:最好给每个工具一个答案或评论它已经有一个。

【问题讨论】:

需要成为社区 Wiki 问题 看看这个矩阵。可能你有更多的想法。 confluence.public.thoughtworks.org/display/CC/CI+Feature+Matrix 我想知道为什么不包括 IBM Rational Build Forge。它是否遗漏了一个基本功能? 【参考方案1】:

我无法评论 Cdash 或 TeamCity,但我认为 CruiseControl 和 Hudson 各有优势:

CruiseControl 非常适合使用 Ant 或 Maven 构建的项目,如果您有大量项目,它的 UI 会更加清晰。默认情况下,它还做了一些(IMO)明显的事情,比如在构建电子邮件中包含一个更改列表,并通过电子邮件通知成功的构建和失败的构建,Hudson 不会在不安装和配置额外插件的情况下做。李> 我发现对于使用 shell 脚本或 makefile 而不是 Ant 的构建,Hudson 更容易设置;它实际上是一个通用的作业控制应用程序,而不是一个构建系统。如果需要在多个平台上构建,Hudson 的从节点设置非常简单。通过插件机制,Hudson 肯定更容易扩展。

【讨论】:

【参考方案2】:

对于 PHP 项目 CruiseControl + phpUnderControl 是我的终极选择。此外,我喜欢 CC 干净的界面。另一方面,我觉得 Hudson 的插件系统真的很方便,因为它简化了很多项目的配置,但我同意前端缺乏可用性。

理想情况下...... CruiseControl + 一个插件系统或一个干净的 Hudson + 一个 phpUnderControl 端口:)

【讨论】:

【参考方案3】:

我们有大约 50 个项目,每个项目都有几个目标。我发现bitten 对我们的需求非常有用。它的扩展性比巡航控制好得多,并且与 trac 很好地集成。

Bitten 使用 Hudson 风格的从节点,我们的从节点可以构建、测试和报告部分、全部或仅其中一个项目。插件很容易编写(在 python 中),但似乎没有 Hudson 那么多。

缺乏被咬的前端(很难管理多次运行的测试结果),并且 trac 不能很好地完成“项目的项目”,因此我们正在考虑将其插入声纳。两者的结合可能会很酷。

【讨论】:

以上是关于Hudson、CDash、CruisonControl、TeamCity 的持续集成/生成器比较的主要内容,如果未能解决你的问题,请参考以下文章

使用Hudson进行持续集成

如何使用 Hudson 构建 Play 项目?

hudson用户权限丢失后找回

如何从 Jenkins (Hudson) 卸载插件?

Hudson、windows2008和git插件

使用 Maven、SVN 和 Hudson(jenkins) 发布