你使用哪些工具来促进持续集成(CI)?

9
假设您正在进行 CI,标题真正表达了一切:您使用什么工具?
在我们的情况下,我们是一个 .NET 开发商店,并且正在使用:
- Enterprise Cruise - Subversion - NAnt 然而,我们遇到了一些性能问题,其中包括 Subversion 和我们运行的 Cruise 构建代理和管道的数量,因此正在考虑在后端使用 Git 来缓解这种情况。但是,Windows 版本的 Git 给我们带来了问题(似乎有点太“测试版”),因此我们认为我们需要使用 Linux 版本。
这样做的缺点是它进一步增加了任何要管理此设置的人所需的技能集。

那么,你使用什么工具进行版本控制和自动化构建/部署?请同时提及你的开发平台。

5个回答

8
我们使用开源工具Hudson。它是一款非常好用的自动化构建工具。但它不仅仅局限于构建,还可以用来运行测试、生成代码覆盖率报告、发送电子邮件通知等等。
(我们的开发平台以linux和java为主)

2
我们也在使用Hudson,而且我们在Windows上有Java和C++的混合。 - mskfisher

4

Team City 作为CI服务器 - 对于有限数量的项目是免费的。

没有复杂的XML配置,而是采用友好的Web GUI进行配置。Team City还可以与不同的构建系统(如NAnt、MSBuild等)进行配置。还可以设置其他工具与TC一起使用,例如通过运行器运行单元测试。


你在使用Team City时,会搭配哪个版本控制系统? - Richard Ev
@Richard - Subversion,但它也支持其他的版本控制。从我的经验来看,SVN很好用。 - Finglas
谢谢您的回复。您能说一下您有多少个TeamCity构建代理吗?(这似乎是导致我们svn瓶颈的原因 - 大量的cruise构建代理同时进行更新) - Richard Ev
大约有九个项目,其中三个具有夜间、发布和持续构建。它们是交错的,除了在检入代码时运行的持续构建之外,它们在不同的时间启动。至于更多的可扩展性,我无法发表评论。 - Finglas

2
在我目前的工作(为一家非常大的公司承包。约90%使用Microsoft/.NET开发),我们的小组正在使用TeamCity 在新应用程序上实现自动化构建和单元测试。
我设置了这个并开始使用TC上的MSBuild,但我正在尝试推广Nant构建文件和一些更多的标准到新项目中。(在创建新项目时使用VS2008中的模板生成尽可能多的构建设置)
这里的源代码控制很可怕。许多团队仍在使用VSS(包括我的团队,这很糟糕),今年公司推向TFS。我更喜欢使用分布式版本控制系统(如Git),但在这种环境下不会发生。事实上,我不确定一旦公司100%转向TFS,TeamCity是否能够保留下来。但是,我的想法是,到那时候我们会通过CI取得如此巨大的进步,以至于TFS可能无法满足我们的需求。但回到TeamCity,它对VSS的支持很好,已经运行良好。
就部署而言,我正在使用微软的Web Deployment Project add-in以及Nant中的配置。显然,Nant方法更加灵活,但有时候尝试教授不太懂Nant脚本的开发人员可能有些困难。
希望这能稍微帮到您。TeamCity的“演示”版本可以免费获得20个构建配置。
我应该指出,我尝试过CruiseControl.net和Hudson。两者都是优秀的应用程序(并且免费),但我知道在我的团队中,为了其他人能够轻松设置新的构建,需要TeamCity的简单性。否则,一旦我离开,人们可能根本不会进行持续集成。

忘记补充了 - 我们在TeamCity中的主要应用程序是C# 3.5“webforms”和MVC项目。我有几个小型控制台应用程序也在CI中。目前的单元测试是nUnit。如果我们进入TFS,可能不得不切换到MSTest。我还在大多数构建中自动化FXCop分析。非常容易设置。 - adammokan
1
此外,查看最近的博客文章,了解有人如何设置TeamCity和MSDeploy来部署他们的应用程序。http://therightstuff.de/2010/02/06/How-We-Practice-Continuous-Integration-And-Deployment-With-MSDeploy.aspx - adammokan

1

我的店铺使用Java/Windows,采用IBM软件;ClearCase、WAS、WMB、WPS。我们选择了Hudson,它为生产力做出了一些奇妙的贡献。

我们还使用一个小毛绒动物,这次是一个唱歌的雪人,大约12英寸高。每当开发人员破坏了构建,由Hudson识别出来后,他们有15分钟时间清理残局,否则Frosty会出现在他们的桌子上。Frosty会一直待在那里,直到其他人以同样的方式搞砸了它。

我和整个团队都曾经拥有过Frosty,它有助于在心理上鼓励更好的编码实践,或者至少不会妨碍你的队友的编码实践。


0

我曾经使用过CruiseControl.NET、NUnit、FxCop、NCover、XMLPreprocess、NAnt等工具,后来转向了TFS,开始进行大量的SharePoint开发。由于项目限制,我没有为SharePoint开发投资CI流程,但我已经开发了MSBuild任务并订阅了TFS事件,以模拟与TFS 2k5的CI流程。我还没有研究过TFS 2k8的相关内容,但它肯定是支持的。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接