【问题标题】:Teamcity - multiple build configurationsTeamcity - 多种构建配置
【发布时间】:2012-08-23 19:49:51
【问题描述】:

我对 TeamCity 很陌生,并且已经玩了几天了。我的 Visual Studio 解决方案有以下项目:

  • SharedComponents:这些是其他项目使用的共享实体和异常类
  • DAL
  • DAL.Tests:DAL 的单元测试
  • BLL
  • BLL.Tests:BLL 的单元测试
  • Web:ASP.NET MVC3 项目

目前我有一个构建配置设置,一旦更改签入到 SVN,它将编译解决方案并运行所有测试。这很好,但在某些情况下我不希望这种情况发生:

  • 如果仅对 Web 项目进行更改,则只应重建该项目
  • 如果更改是针对 BLL,则应重建 BLL、BLL.Tests 和 Web,然后执行 BLL.Tests。

设置上述场景的最佳方法是什么。如果您能提供帮助,我将不胜感激。

非常感谢

【问题讨论】:

    标签: teamcity


    【解决方案1】:

    您可以将构建配置拆分为几个:

    1. DAL - 触发 DAL 和 DAL.Test 中的更改,使用 msbuild 构建它们并运行测试。
    2. BLL - 与 DAL 相同。
    3. Web - 触发 Web 项目的更改并重建它。

    对于每个您应该使用 VCS 触发器的“触发器规则”配置结帐路径。 添加到第二个配置“完成触发器”,这取决于第一个配置,第三个配置相同,取决​​于第二个。因此,如果您推送与 Dal 相关的更改,它将按照 DAL -> BLL -> Web 的顺序构建所有配置。如果您只在 BLL 中进行了更改,则链将是 BLL -> Web,并且 Web 更改将仅触发一次 Web 构建。

    【讨论】:

    • 非常感谢。它就像一个魅力!我还在每个构建中添加了 VCS 签出规则,以便仅检测和下载与每个项目相关的更改