【问题标题】:TeamCity - non-trivial build sequence, please adviceTeamCity - 非平凡的构建序列,请咨询
【发布时间】:2014-07-07 23:06:40
【问题描述】:

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

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

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

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

TeamCity 的当前版本只允许配置一个跑步者......这让我遇到了很多事情。

您将如何处理这个问题?我目前的想法是对所有事情都使用 MsBuild 运行器,并且基本上启动我自己的基于 MsBuild 的脚本,然后它会做所有的事情,几乎就像 TFS 处理它的方式一样(和我在 cc.net 中做事情的方式一样)使用我自己的 Nant 构建脚本)。

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

有人有什么想法吗?

谢谢。

【问题讨论】:

    标签: continuous-integration teamcity


    【解决方案1】:

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

    【讨论】:

    • 我提出原始问题时它不可用。从那时起,我们搬到了那里。
    【解决方案2】:

    您需要编写脚本,至少是其中的一部分。 TeamCity 提供了一些不错的基于 UI 的配置来满足您的一些需求,但不是全部。这是我的建议:

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

    为 FxCop 创建第二个构建配置。从第一个构建触发它。在第一次构建时给它一个“工件依赖项”,这就是它获取你的 dll 的方式。

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

      • 我真的不喜欢这样,因为这意味着有大量的构建配置。我知道 TeamCity 的下一个版本允许每个配置有多个构建运行器。我真的很讨厌创建 10 个链式配置(这就是我们现在所说的步骤数),这通常是一个简单的构建脚本就可以做到的。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-31
      • 1970-01-01
      • 2012-05-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多