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

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

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

对此的要求是:

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

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

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

谢谢

最佳答案

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

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

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

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

现在,如果“无服务器组件”意味着您不希望它像 Web 服务器一样运行,那么您将很难找到对您的提交使用react的东西。

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

关于msbuild - Mercurial/Kiln + MSBuild + MSTest 的持续集成建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4672509/

相关文章:

android - 管理 Android 应用商店(谷歌/亚马逊/等)的代码/构建?

maven - 在 Android Studio 中优化构建时间

c - 在配置脚本中处理 CFLAGS 的最佳实践?

c# - WPF 应用程序中的间歇性构建问题

android - 通过 TeamCity 为 Android 持续集成。首选工具?

xcode - 学习和理解 Xcode 构建系统

.net - 内容文件更改后 Visual Studio 未重建

java - 如何让 Maven 自动重试(从失败的模块恢复)?

java - 在应用程序中显示构建时间戳

qt - qmake 和 QT_INSTALL_PREFIX。如何为 Qt 库选择新位置?