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

标签 teamcity teamcity-8.0

当我想运行相同的构建配置但在不同的 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/

    相关文章:

    .net - TeamCity 中代码覆盖率的属性过滤器语法

    api - TeamCity:如何获取当前未运行的每个构建配置的最后构建列表?

    c# - Linux/Mono 代理上的 TeamCity 中的 MSBuildTools12.0_x86_Path 未满足要求

    git - TeamCity 构建依赖关系并选择正确的分支

    api - TeamCity REST API : Who broke the build?

    git - 如果存在针对该 SHA1 的构建,则阻止 TeamCity 构建快进 merge 到 master

    ubuntu - 无法运行 TeamCity 自定义脚本

    build - 当多个 VCS 根附加到构建配置时 TeamCity VCS 触发

    entity-framework-4 - 由于 EF 代码迁移,Teamcity 构建失败