我正在寻找不同的比较 continuous integration(CI)服务器(尤其是聚焦 在.NET上)并且找不到任何。
因此,我想知道你对此的看法 可用的解决方案有哪些,优点和缺点是什么, 什么是托管要求以及CI服务器XY的原因 您选择的服务器。
我对你的想法感兴趣(随意评论 其他人):
兴趣点是:
答案 0 :(得分:51)
如果没有指向大型CI Feature Matrix(Web Archive)的链接,就不会有这样的问题,而Elements of Enterprise CI几乎列出了每个CI选项。
但我认为展望您想要包含在CI系统中的范围非常重要。它是否只是构建或者您将引入其他元素,如静态分析,跨项目依赖,部署,功能测试等。为了帮助进行规划,我在{{3}}上创建了这个挂图( PDF;无需注册)。请不要让“E-word”让你失望;我只是指基本的快速反馈CI构建之外的东西。 :)
它不是特定于工具的,但列出了您在规划/评估阶段可能会考虑的各种实践。
答案 1 :(得分:14)
没有任何帮助:
编辑:Jonik在评论中指出,我错过了What is the difference between Hudson and CruiseControl for Java projects?和How and why do I set up a C# build machine?。你会找到非常有见地的答案。换句话说,我认为您正在寻找的所有内容都已经在Stack Overflow上。
答案 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和其他很酷的功能,如构建依赖性和许多更多。它只是有效,我喜欢它。