Mercurial/Kiln + MSBuild + MSTest 的持续集成建议 [英] Recommendations for Continuous integration for Mercurial/Kiln + MSBuild + MSTest

查看:12
本文介绍了Mercurial/Kiln + MSBuild + MSTest 的持续集成建议的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

We have our source code stored in Kiln/Mercurial repositories; we use MSBuild to build our product and we have Unit Tests that utilize MSTest (Visual Studio Unit Tests).

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

What solutions exist to implement a continuous integration machine (i.e. Build machine).

对此的要求是:

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

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

Ideally, this system would run on a single box (our product isn't that big) without any server components.

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

What solutions are currently available? What are their pros/cons? From the list above, what can be done and what cannot be done?

谢谢

推荐答案

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

TeamCity, from JetBrains, the makers of ReSharp, will do all of that. You will have to configure it for what specifically it means to "build your product", but you can configure up everything you specified with it.

该软件可以提醒您构建失败,甚至只提醒负责签入破坏构建的代码的人员.它甚至带有方便的网页,您可以查看仅查看您自己的更改、成功完成的构建、待处理的构建以及当前正在执行的构建.

The software can alert you to failed builds, even down to alerting only the person responsible for checking in code that broke the build. It even comes with handy web pages you can view to see only your own changes, which builds they've been through successfully, which ones are pending, and which ones are currently being executed.

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

Since it is a distributed product, you can make it grow with your organization and product. If at some point you discover that you're waiting for the build to complete too much, because a lot of builds are being queued up, you can add more build agents. The build agents are basically separate client programs you install on additional machines, that execute the actual build configurations.

它有两种风格,专业版和企业版.专业版是免费的,最多可以包含 20 个构建配置、20 个用户和 3 个构建代理.企业版拥有无限的用户和构建配置,您还可以使用基于 LDAP 的安全性(想想经过域验证的用户).企业版还有其他一些好处.如果您需要的不仅仅是最初的 3 个,您还可以购买更多构建代理的许可证.

It comes in two flavors, the professional version and the enterprise version. The professional version is free, can contain up to 20 build configurations, 20 users, and 3 build agents. The enterprise version has unlimited users and build configurations, and you can also use LDAP based security (think domain verified users.) There's also some other bonuses from the enterprise version. You can also buy licenses for more build agents if you need more than the initial 3.

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

Now, if "no server components" means you don't want it to act like a web server, you're going to be hard pressed to find something that will react to your commits.

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

However, if you mean that you don't want to have to install a server OS, then TeamCity can work on workstation versions of Windows as well. That isn't to say that you shouldn't consider setting up a proper server for it, but it will run on a workstation if that is what you require.

这篇关于Mercurial/Kiln + MSBuild + MSTest 的持续集成建议的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆