CI服务器的比较?

时间:2009-09-17 11:55:18

标签: .net comparison continuous-integration

我正在寻找不同的比较 continuous integration(CI)服务器(尤其是聚焦 在.NET上)并且找不到任何。

因此,我想知道你对此的看法 可用的解决方案有哪些,优点和缺点是什么, 什么是托管要求以及CI服务器XY的原因 您选择的服务器。

我对你的想法感兴趣(随意评论 其他人):

兴趣点是:

  • 配置(简单,灵活)
  • 与SCM集成(特别是像git或hg一样的DSVC)
  • 与构建系统集成(MSBuild,NAnt,Rake)
  • 与测试框架集成
  • 与Source Anaylsis(Simian,NDepend,FxCop,NCover等)整合
  • WebInterface /仪表板
  • 基础设施要求

13 个答案:

答案 0 :(得分:51)

如果没有指向大型CI Feature Matrix(Web Archive)的链接,就不会有这样的问题,而Elements of Enterprise CI几乎列出了每个CI选项。

但我认为展望您想要包含在CI系统中的范围非常重要。它是否只是构建或者您将引入其他元素,如静态分析,跨项目依赖,部署,功能测试等。为了帮助进行规划,我在{{3}}上创建了这个挂图( PDF;无需注册)。请不要让“E-word”让你失望;我只是指基本的快速反馈CI构建之外的东西。 :)

它不是特定于工具的,但列出了您在规划/评估阶段可能会考虑的各种实践。

答案 1 :(得分:14)

答案 2 :(得分:7)

TeamCity 有一个很棒的功能,允许开发人员在提交之前执行个人构建。非常有用!

CruiseControl.NET 是这群人的爷爷,因此在视觉上有点过时等等。因为它已经存在了一段时间,谷歌知道如何修复你将遇到的许多问题。

由于这些原因(以及其他原因),我在工作中使用CruiseControl.NET,在家中和开源生活中使用TeamCity:)

答案 3 :(得分:5)

我一直是CruiseControl.NET用户。我的团队在工作中使用它,我在家里用它来进行个人项目。

特别是,CruiseControl.NET允许我运行整个CI过程:构建,版本更新,单元和集成测试,源或候选版本的存档,代码覆盖,甚至部署到我们的工作测试系统。它具有高度可定制性,适用于MSBuild和NAnt,甚至还具有可扩展的插件架构。

它几乎可以满足我所需要的一切。

最大的缺点:配置有时会很痛苦,而且需要时间。但是一旦完成,它就完成了,正如另一张海报所说,我喜欢看到“成功构建”信号,因为我知道不仅构建本身有效,而且我的单元和集成测试都成功运行。

答案 4 :(得分:2)

Team Foundation Build是一个选项,它与Team Foundation Server的交互非常好。只要您获得TFS许可,它就是免费的。

答案 5 :(得分:1)

CruiseControl.NET - 设置起来可能有点痛苦(大多数CI系统也是如此),但值得坚持不懈。我目前已将其设置为在构建完成时运行单元测试,并按需生成Wix安装程序。正如丹所说,它看起来有点陈旧,但这并不重要,因为它为您提供了大量易于阅读和易于阅读的信息。

有一件事 - 确保所有开发人员都安装了CC Tray,并运行并指向他们的构建。在通知托盘中获得“另一个成功构建”是一种很棒的感觉。

答案 6 :(得分:1)

我们在工作中使用哈德森。主要原因是,它很容易设置。您可以直接执行war(它是可执行jar)或在任何servlet容器中部署它。你已经准备好开始了。 Hudson也支持许多工具,并且可以通过它的插件系统进行扩展。

答案 7 :(得分:1)

我们从CruiseControl.NET切换到TeamCity主要是因为配置简单。 TeamCity还有更多功能,但主要原因是一个漂亮的Web UI比XML配置文件更易于使用。

编辑:大多数任务TeamCity将开箱即用;必要时我们使用NAnt。

答案 8 :(得分:0)

我对CI场景很陌生,我一直专注于CruiseControl.NET,使用NAnt和Ivy来构建我的.NET项目。

我发现CruiseControl.NET非常适合许多其他工具,例如NCover / NUnit /等。他们都插入了这个并整合了结果,以便组合构建过程。

我会在不久的将来为了自己的兴趣调查TeamCity,但我认为CruiseControl做得很好,但只有你的构建脚本一样好!如果这些是裤子,那么你的构建只能期望那么好。

但总的来说,CruiseControl.NET是一个很好的解决方案,但我还没有找到比较好的竞争对手。

答案 9 :(得分:0)

我们在工作中使用ccnet,这对我们的大多数需求都很好(我们有大约50个自动构建),但它需要一个人进行全时调整和修复。

如果你是从头开始,请看看Bamboo。我们已经对它进行了调查,它看起来很有前景,但它并不完全符合我们的需求,我们已经花了太多时间在ccnet上切换到Bamboo。

此致

Sebastiaan

答案 10 :(得分:0)

我继承了一个luntbuild服务器。对于.NET项目来说不是一个好的选择。如果您发现自己不断使用构建服务器来运行通用命令行任务,那么就会出现问题。一个好的构建服务器对单元测试输出和msbuild任务有很好的理解,因为它不仅仅是在源控制系统发生变化时运行的不透明命令。

我很乐意转移到Team City。

答案 11 :(得分:0)

我们对Hudson感到满意。我没有任何东西可以比较,但配置和运行很简单。现在它只构建Win32 C ++项目和安装程序,但我们正在移植到Linux,它也应该使用它。

获取Subversion存储库没有任何问题,并发出警报等。我们到目前为止都喜欢它。同样,我们在比较方面的经验有限。

答案 12 :(得分:0)

我已经使用CruiseControl.NET,TFS 2012和TeamCity 7.x多年了,我相信TeamCity是最好的,因为它易于使用,舒适且信息丰富的UI和其他很酷的功能,如构建依赖性和许多更多。它只是有效,我喜欢它。