TeamCity - 非平凡的构建顺序,请咨询

时间:2010-11-05 09:00:28

标签: continuous-integration teamcity

我的任务是提高质量并实施TeamCity以实现持续集成。我在TeamCity方面的经验非常有限 - 我自己主要使用TFS,并且对CC.NET有一些经验。

在构建过程中应该发生很多事情......实际上,构建已经被推送到三个不同的配置中,这些配置将在下一个配置之后运行。

我的主要问题是,在每一个中我实际上需要启动多个跑步者。例如,第一个构建步骤应包括:

  • 生成新的AssemblyInfo.cs文件,以便在程序集编号中保持一致
  • 实际编译
  • 部分单元测试运行(所有快速运行并检查核心功能的测试)
  • 运行FxCop
  • StyleCop运行

当前版本的TeamCity只允许配置一个跑步者...这让我陷入了很多困境。

你会如何接近这个?我目前的想法是使用MsBuild运行器来完成所有事情并基本上启动我自己的基于MsBuild的脚本然后执行所有操作,就像TFS处理它的方式一样(和我用cc.net方式做的事情一样)用我自己的Nant构建脚本)。

关于另一个问题,问题是如何呈现统计信息,例如来自在不同阶段(构建配置)运行的单元测试。我们还有一些需要花费一些时间才能运行的东西,并且希望它能够在第二步或第三步中运行(最新的例如测试数据库生成代码,包括加载基础数据,运行大约需要15分钟以上)。 OTOH我们真的希望测试结果以某种方式得到巩固。

任何想法?

感谢。

3 个答案:

答案 0 :(得分:4)

TeamCity 6.0允许单个构建配置的多个构建步骤。这不是你想要的吗?

答案 1 :(得分:1)

你需要编写这个,至少部分内容。 TeamCity为您的一些需求提供了一些很好的基于UI的配置,但不是全部。这是我的建议:

创建一个msbuild脚本来处理前两个要点,AssemblyInfo生成和编译。配置msbuild运行器以运行脚本并运行测试。将您的程序集收集为工件。

为FxCop创建第二个构建配置。从第一次构建触发它。在第一次构建时给它一个“神器依赖”,这就是它如何控制你的dll。

对于StyleCop,TC不支持开箱即用,就像FxCop一样。手动将其添加到您的msbuild脚本,并让它生成一个html报告(然后可以显示TeamCity)。

答案 2 :(得分:0)

您需要查看TeamCity中的 Dependencies 功能。此功能允许您创建一系列构建配置。换句话说,您需要为每个步骤创建构建配置,然后将它们作为依赖项链接。 要整合测试结果,请在工件依赖项中获取战利品。这可能有所帮助。