【问题标题】:Best Practice for identical TeamCity builds across different VCS roots跨不同 VCS 根的相同 TeamCity 构建的最佳实践
【发布时间】:2015-03-26 16:15:24
【问题描述】:

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

例如;我有几个用于存储库的“构建和测试”配置(针对存储库中的每个项目),我想在我们的 master/develop/r1.0/etc 分支中复制所有设置?

过去我只是复制了整个构建配置集并更改了 VCS 根来实现这一点,但是随着分支数量的增长(随着时间的推移添加了更多的发布分支),我该如何简化我的配置并最小化如果构建发生变化,我需要在多少地方进行更改?

【问题讨论】:

  • 您是否构建和测试旧版本等? - 我个人使用 TC @work,但仅用于平庸的事情,例如“构建和测试这个发布分支并部署到测试 - 然后提升到生产” - 每个项目我只保留 1 个发布分支。我认为 TC 无法以您已经知道和使用的任何其他方式满足您的需求。对不起
  • 我会在创建分支后构建并测试它们,然后该分支中的任何修补程序都需要经过相同的过程。任何时候都可能有 3-4 个发布分支在运行。
  • 您使用什么版本控制?如,不同的 VCS 根是什么?
  • @psych; Git/Stash,VCS 根是不同的分支。

标签: teamcity teamcity-8.0


【解决方案1】:

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

模板是

  1. 持续集成模板 - 您只想检查正在构建的项目
  2. 发布模板 - 构建和发布生成

VCSroot 仅指向源代码控制的根。 vcs root 的分支参数设置为构建配置继承自构建配置模板的自定义分支参数。

我们有这样的分支机构

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

Master 和 Development 使用持续集成模板,每个新的发布分支都使用 Release 配置模板。对我来说,为 3.4.4 分支创建新配置的过程是这样的:

  1. 创建新配置
  2. 选择模板 选择:发布
  3. 输入配置名称 输入:3.4.4
  4. 保存
  5. 运行构建

重点是Release模板中的Branch name参数是这样的

%BranchPath%=Release/%ConfigurationName%

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

%BranchPath%=%ConfigurationName%

在 VCS 根分支中进一步设置为从配置传入的 %BranchPath%,因此 VCS 可以使用这两个模板以及所有 20 个配置 仅此而已.. :) 希望它能有所帮助

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-02-09
    • 1970-01-01
    • 2021-11-22
    • 1970-01-01
    • 1970-01-01
    • 2022-07-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多