我已经阅读了一些资料,了解到了 CruiseControl.NET,它被用于stackoverflow开发,以及TeamCity ,它支持在不同操作系统和编程语言上运行构建代理。如果你对这两个工具都有实践经验,你更喜欢哪一个?为什么?
目前,我最关心的是工具的易用性和管理,而不是CC是开源的,TC随着项目数量的增加需要付费许可证(因为我只需要为少量项目使用它)。
此外,如果还有其他符合上述要求且您认为值得推荐的工具,请随意在讨论中提出。
我从使用产生Cruise Control(Java版本)的那个时候就开始了解和使用持续集成工具,几乎尝试过所有这样的工具。与TeamCity一起使用后,我感到非常满意。它非常容易设置,同时还提供了很多强大的功能。构建统计页面显示构建时间、单元测试数量、通过率等内容非常好用。TeamCity的项目主页也非常有价值。 对于简单的.NET项目,只需要告诉TeamCity解决方案在哪里以及哪些程序集具有测试,这就足够了(除了源代码控制位置)。我们还使用了一些复杂的MSBuild脚本,并进行了构建链接。 我还进行了两次TeamCity升级,都非常顺利。
CruiseControl.NET也运行良好。设置它可能有点棘手,但是它的历史比较悠久,因此可以轻松在网络上找到解决方案。由于CruiseControl.NET是开源的,您还可以添加或更改任何您喜欢的东西。自发布以来,我一直在使用CruiseControl.NET,并编写了cc.tray的早期代码(幸运的是被知道得更好的人重新编写了)。
ThoughtWorks的Cruise看起来也不错,但我认为没有令我切换的充分理由。如果我要开始一个新的项目,我可能会尝试一下,但是TeamCity在使简单的事情变得简单的同时,使复杂的事情也很容易。
编辑: 我们几周前刚升级到了TeamCity 5.0,这又是一次顺利的升级。它让我们能够利用改进的代码覆盖率功能和GIT支持。我们现在还在使用个人构建和预测试提交功能。我只是想更新答案,表明TeamCity不断改进并且仍然易于使用。
我是CC.NET的铁杆粉丝。目前我们在CruiseControl中有5个项目,使用情况很好。手动编写配置文件可能会令人痛苦,但还可以接受。
但是。
在Kona: 连续集成和更好的单元测试(前1/3关于TeamCity)的演示录屏后,我也检查了TeamCity。我很喜欢集成的单元测试仪表板和配置界面。
我认为每个人在选择CC.NET或TeamCity之前都应该观看这个视频。
p.s.:希望互联网上也有有价值的CC.NET视频。
我最喜欢的CI服务器是Hudson。易于设置和维护,有很多漂亮的图表可以向开发人员和非开发人员展示趋势,并且是免费的。
我目前在项目中使用TeamCity,总体上我对它感到满意,但是它生成的许多图表并不特别有用,并且配置起来比Hudson更复杂。
尽管如此,TeamCity功能强大,在许多情况下是免费的,而且有一个强大的功能:远程运行。您可以直接从IDEA或Eclipse "预提交"您的检查,在TeamCity服务器上运行一个或多个构建配置,并且仅在构建成功(例如编译和所有测试通过)时提交更改。
鉴于您可以在几个小时内同时运行TeamCity和Hudson以及其他任何您能想到的CI服务器(例如CruiseControl),这可能值得一试。如果您不能快速地启动CI服务器进行并排比较,那么至少您可以获得安装和/或配置的易用性数据点。
我在不同的项目中都成功地使用过这两种工具。就安装和管理方面而言,Team City要容易得多。你不必像使用CC时一样需要修改.config文件,而且设置也非常简单。由于你没有很多项目,我建议在你需要支付Team City的费用之前,先选择使用Team City。
我曾经使用过CC.net和TeamCity。现在,我被要求为我们的组织(5名开发人员)设置和安装TeamCity。我们的组织使用一些不常见的实践和工具(至少对于我们这样规模的组织来说),例如Perforce用于源代码控制以及在异构操作系统上运行多个构建代理,这导致了一些初始设置方面的困扰。然而,通过电子邮件提供的支持非常出色,帮助我们完成了所有设置。我提出的愚蠢问题都能在几分钟内得到回答。
界面直观且响应迅速,功能齐全。该产品价格昂贵。配置很容易,Web界面智能地更新而无需重启代理或服务器服务,甚至无需刷新页面。
我感觉我们正在使用该产品的几乎所有高级功能,并且到目前为止还没有发现任何错误。Ndepend集成、嵌套的NAnt脚本、Perforce版本标记等,你说了算,我们都在用。
我强烈推荐TeamCity给任何寻找持续集成服务器或任何构建服务器的人。
不想向您推荐其他工具 :-)
Hudson是一个很好的开源替代品,我曾经使用过CC和CC.net,我承认它们是非常棒的工具。我正在考虑切换到Hudson,因为它似乎更容易设置和维护。
我发现的第一件事是,CC.Net的项目触发器并不是您所需的,而且多触发器与项目触发器不兼容。项目触发器的工作方式(它们使用远程连接到存储项目的服务器(即使是由CC.Net的同一实例管理的项目),然后从该服务器中提取所有项目,并按顺序搜索列表以查找您感兴趣的项目...)意味着它们无法扩展。一旦您超过一定数量的项目,您会发现CC.Net占用了构建机器的大部分CPU。
当然,它是开源的,所以您可以修复它...而且,我相信它对于数量较少的非相互依赖项目来说是可以的。
如果您想了解我遇到的问题以及一些CC.Net的补丁,请点击这里查看http://www.lenholgate.com/archives/cat_ccnet.html
我最近设置了cc .net。这是一个很棒的应用程序,但需要一些耐心。您将经常在记事本中编辑配置文件 :)
它已经存在一段时间了,因此得到了良好的支持,通常可以找到已经完成您想要完成的工作的人。Web界面也是.net的,这对我们来说是一个加分项,因为我们是微软公司。
我没有使用过TeamCity,但我听到过很多推荐,并且它看起来很漂亮。
http://studios.thoughtworks.com/cruise-continuous-integration