2011-01-12 40 views
18

我们的源代码存储在Kiln/Mercurial存储库中;我们使用MSBuild来构建我们的产品,并且我们有使用MSTest(Visual Studio单元测试)的单元测试。针对Mercurial/Kiln + MSBuild + MSTest的持续集成建议

实现持续集成机器(即构建机器)有哪些解决方案。

对此的要求是:

  • 一个构建应该被踢出必要时
  • 实际构建,源的最新版本之前(即代码中,我们关心的库已经变化了)代码必须从我们从
  • 建库中获得的构建必须建立在整个产品
  • 构建必须建立所有的单元测试
  • 构建必须执行所有单元测试
  • 构建完成后必须发送成功/失败摘要;这必须包含关于构建本身的信息,但也包括关于哪些单元测试失败以及哪些成功的信息。
  • 摘要必须包含其中的变更是在此版本尚不是在以前成功(!)建立
  • 系统必须配置的,因此它可以从多个分支(/库)建设。

理想情况下,该系统可以在没有任何服务器组件的情况下在单个盒子上运行(我们的产品并不那么大)。

目前有哪些解决方案可用?他们有什么优点/缺点?从上面的列表中,可以做什么和不能做什么?

感谢

回答

5

我们的产品BuildMaster做所有的你设计所列出的东西,也有免费的,有些限量版(例如,你只能有问题跟踪供应商的数量有限,与之集成,数据库更改脚本打包工具不包含在免费版本中)等5个用户或更少。

7

来自JetBrains的TeamCity,ReSharp的制造商将完成所有这些工作。您必须将其配置为专门用于“构建产品”的含义,但您可以配置您指定的所有内容。

该软件可以提醒您构建失败,甚至只是提醒负责检查构建代码的负责人。它甚至配备了方便的网页,您可以查看只看到自己的更改,这些更改已成功完成,哪些未完成,哪些正在执行。

由于它是分布式产品,因此您可以使其与您的组织和产品一起成长。如果在某个时候发现您等待构建完成太多,因为许多构建正在排队,您可以添加更多构建代理。构建代理基本上是在附加机器上安装的独立客户机程序,它们执行实际的构建配置。

它有两种口味,专业版和企业版。专业版是免费的,可以包含多达20个构建配置,20个用户和3个构建代理。企业版本拥有无限的用户和构建配置,并且您还可以使用基于LDAP的安全性(认为域验证的用户)。企业版还有其他一些奖励。您也可以购买许可证更多生成代理,如果你需要比最初的3

更多的现在,如果“无服务器组件”是指你不希望它像一个web服务器,你会是很难找到能够对你的提交做出反应的东西。

但是,如果你的意思是你不希望有安装一个服务器操作系统,然后TeamCity的可以在Windows的工作站版本的正常工作。这并不是说你不应该考虑为它设置一个合适的服务器,但如果这是你需要的,它将在工作站上运行。

+0

我放弃了CruiseControl for TeamCity,我的整个团队都非常满意这个变化。我们在项目中使用MSBuild脚本,在测试中使用NUnit。我们主要开发C++和C#应用程序 – T33C 2011-01-13 13:49:02

0

总是有BuildBot我喜欢(并贡献了一些代码)。在任何操作系统上安装和运行都非常简单,并且可以像你说的那样执行简单的任务,并且在需要时可以非常灵活。

什么你可能会发现缺少的是电池,包括登录刮削器和/或其他更多的商业CI-服务器自带的,尤其是对企业-Y框架的报表生成器。

它的尺度也相当不错,Mozilla和Chromium使用它,等等。

2

您所描述的是CI工具的基础知识,因此每个CI工具都应该可以。
我用克鲁斯Control.NET但窃听与水银,而不是乍一看非常简单。我对此感到满意。我想到的其他工具是Hudson,团队建设(来自TFS)TeamCity

我还没有尝试过其他工具,但你可以看到优点/缺点在这里:

编辑:我忘了提及Hudson和Cruise Control.net是开放源代码的专业版ject,你可以很容易地写插件和补丁到你的安装。

EDIT²:在即将到来的1.6版ccnet(本周更改为主干)中,Mercurial bug似乎已修复。