当我想运行相同的构建配置但在不同的 VCS 根上时,谁能告诉我配置 TeamCity 构建的最佳方法是什么?
例如;我有一个存储库的几个“构建和测试”配置(对于存储库中的每个项目),我想在我们的 master/develop/r1.0/etc 分支中复制所有设置?
在过去,我只是复制了整个构建配置集并更改了 VCS 根目录来实现这一点,但是随着分支数量的增加(随着时间的推移添加了更多的发布分支),我该如何简化我的配置并最小化多少地方如果有关构建的某些内容发生变化,我需要进行更改吗?
最佳答案
这是我对这个问题的看法。
我认为您的解决方案是在 VCS 根中使用构建配置模板 + 参数化。
我们有大约 20 个构建配置(1 个配置 = 1 个分支),仅由两个模板和一个 vcs 根创建。配置的所有常见内容都保存在模板中。只有少数特定参数在配置本身中,您可以在从模板创建配置时设置它们。其中之一是分支名称,在我的情况下与配置名称高度相关。
模板是
VCSroot 仅指向源代码管理的根。 vcs root 的分支参数设置为构建配置继承自构建配置模板的自定义分支参数。
我们有这样的分支结构
-Master
-Development
-Releases__3.4.1
|_3.4.2
|_3.4.3
Master 和 development 使用持续集成模板,每个新的 release 分支使用 Release 配置模板。对我来说,为 3.4.4 分支创建新配置的过程是这样的:
选择:发布
输入:3.4.4
重点是发布模板中的分支名称参数是这样的
%BranchPath%=Release/%ConfigurationName%
对于持续集成模板,它将是
%BranchPath%=%ConfigurationName%
进一步在 VCS 根分支中设置为 %BranchPath% 从配置传递给它,因此 VCS 可以使用两个模板和所有 20 个配置
就是这样.. :) 希望它以某种方式有所帮助
关于teamcity - 跨不同 VCS 根构建相同 TeamCity 的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28180807/