Mercurial/Kiln + MSBuild + MSTest持续集成的建议

TDD*_*TDD 18 msbuild mercurial continuous-integration mstest build

我们的源代码存储在Kiln/Mercurial存储库中; 我们使用MSBuild来构建我们的产品,并且我们有使用MSTest(Visual Studio单元测试)的单元测试.

实现连续集成机器(即构建机器)存在哪些解决方案.

对此的要求是:

  • 必要时应该建立一个构建(即代码在我们关心的存储库中发生了变化)
  • 在实际构建之前,必须从我们构建的存储库中获取最新版本的源代码
  • 构建必须构建整个产品
  • 构建必须构建所有单元测试
  • 构建必须执行所有单元测试
  • 构建完成后必须发送成功/失败的摘要; 这必须包括有关构建本身的信息,还包括哪些单元测试失败以及哪些成功.
  • 摘要必须包含此构建中尚未包含在先前成功(!)构建中的更改集
  • 系统必须是可配置的,以便它可以从多个分支(/ Repositories)构建.

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

目前有哪些解决方案?他们的利弊是什么?从上面的列表中,可以做什么和不能做什么?

谢谢

ang*_*son 7

来自ReSharp制造商JetBrains的 TeamCity 将完成所有这些工作.您必须根据"构建产品"的具体含义对其进行配置,但您可以配置您使用它指定的所有内容.

该软件可以提醒您失败的构建,甚至警告只有负责检查破坏构建的代码的人.它甚至还带有方便的网页,您可以查看这些网页,只查看您自己的更改,这些更改已成功完成,哪些已挂起,哪些正在执行.

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

它有两种版本,专业版和企业版.专业版是免费的,最多可包含20个构建配置,20个用户和3个构建代理.企业版具有无限的用户和构建配置,您还可以使用基于LDAP的安全性(认为域验证用户.)还有一些来自企业版的其他奖励.如果您需要的数量超过最初的3,您还可以购买更多构建代理的许可证.

现在,如果"没有服务器组件"意味着您不希望它像Web服务器那样运行,那么您将很难找到对您的提交做出反应的内容.

但是,如果您不想安装服务器操作系统,那么TeamCity也可以在Windows的工作站版本上运行.这并不是说你不应该考虑为它设置一个合适的服务器,但如果你需要它,它将在工作站上运行.


Joh*_*sch 5

我们的产品BuildMaster完成了您按设计列出的所有内容,并且有一个免费的,有限的版本(例如,您只能将有限数量的问题跟踪提供程序与其集成,数据库更改脚本打包工具不包含在5个或更少用户的免费版本等.