相同TeamCity的最佳实践跨不同的VCS根构建

时间:2015-01-27 21:57:05

标签: teamcity teamcity-8.0

当我想运行相同的构建配置但是在不同的VCS根目录时,有人能告诉我配置TeamCity构建的最佳方法是什么?

e.g;我有几个'build&测试存储库的配置(对于repo中的每个项目),我想复制master / develop / r1.0 / etc分支中的所有设置?

过去我刚刚复制了整个构建配置集并更改了VCS root来实现这一点,但随着分支数量的增加(随着时间的推移增加了更多的发布分支),我该如何简化配置并最小化如果关于构建的某些内容发生了变化,我需要改变多少个地方?

1 个答案:

答案 0 :(得分:4)

以下是我对这个问题的看法。 我认为您的解决方案是在VCS根目录中使用Build配置模板+参数化。 我们有大约20个构建配置(1个配置= 1个分支),只有两个模板和一个vcs root。配置的所有常见内容都保存在模板中。只有少数特定参数在配置中,您可以在从模板创建配置时使用它们。其中一个是分支名称,在我的情况下与配置名称高度相关。

模板

  1. 持续集成模板 - 您只想检查正在构建的项目
  2. 发布模板 - 构建加发行版
  3. VCSroot仅指向源控件的根。 vcs root的分支参数设置为自定义分支参数,构建配置继承自构建配置模板。

    我们有像这样的分支机构

    -Master
    -Development
    -Releases__3.4.1
             |_3.4.2
             |_3.4.3
    

    Master和开发正在使用持续集成模板,每个新版本分支都使用Release配置模板。对我来说,为3.4.4分支创建新配置的过程如下:

    1. 创建新配置
    2. 选择模板 选择:发布
    3. 输入配置名称 输入:3.4.4
    4. 保存
    5. 运行构建
    6. 点是发布模板中的分支名称参数是这样的

      %BranchPath%=Release/%ConfigurationName%
      

      对于持续集成模板,它将是

      %BranchPath%=%ConfigurationName%
      

      此外,在VCS中,根分支设置为从配置传入的%BranchPath%,因此VCS可以使用这两个模板和所有20个配置 这就是全部.. :)希望它以某种方式帮助