为 TeamCity 构建选择 Git 分支

Posted

技术标签:

【中文标题】为 TeamCity 构建选择 Git 分支【英文标题】:Select Git branch for TeamCity Build 【发布时间】:2014-06-18 09:41:38 【问题描述】:

我想知道如何使用 Team City 8.1 选择要构建的分支。

我的 VCS 根 (Git) 设置为默认值:“master”和分支规范是

+:refs/heads/develop
+:refs/heads/feature/*
+:refs/heads/hotfix/*
+:refs/heads/master
+:refs/heads/release/*

我有一个 CI 构建设置,它可以自动构建所有签入的内容,这正是我想要的。

我想做的是针对“开发”分支创建计划的 QA 构建/部署。我看到如果我单击运行按钮旁边的省略号,我可以选择“更改”选项卡上的分支,但我无法确定如何使这个“坚持”。这是可能的,还是我做错了?

谢谢,

【问题讨论】:

【参考方案1】:

您可以参数化 git VCS 设置的“参考名称”。这意味着您在构建中声明%variable.name% 形式的变量,在“配置参数:”类别下创建一个构建参数。

为每个构建目标设置此值,您应该能够选择要为其运行目标的特定分支。

【讨论】:

【参考方案2】:

根据@biswajit-86 的反馈和我在谷歌搜索时发现的一些其他信息,我能够让它工作。这就是我所做的(图像重,抱歉)。它基于 Team City 8.2,其设置似乎与我遇到的示例略有不同。

1) 设置 VCS 根目录。这里的关键是%BranchName% 参数。

2) 创建一个构建模板并使用刚刚创建的 VCS 根。我还添加了一个 MSBuild 步骤,因为我的所有构建都需要运行它。

3) 基于模板创建一个新版本。正如您在此处看到的,在步骤 1 中创建的 %BrachName% 参数可用。

4) 如果您稍后需要更改,请点击此处

差不多就是这样。对于我的 CI 构建,我将分支名称留空,因此签入的任何分支都会触发 MSBuild 步骤。对于我的 QA 构建,我传递了“开发”,如此处所示,并且我每天都会进行此设置。我也有一个“发布”构建设置,但根据我们的命名约定,我似乎需要更新构建以指向每个发布的特定分支。

【讨论】:

Teamcity 应该有这种功能......可惜它没有......对于颠覆我们可以通过结帐规则来控制......但这里没有...... 为什么我必须在 SO 中挖掘才能找到它?它应该可以在官方 TC 手册中找到。非常感谢。 在 9.1.5 版本中,我必须在每个构建配置中手动定义一个 %BranchName% 参数。我还必须使用该参数为每个配置指定一个唯一的检出目录。 (后一个问题可能是由于我们设置的特殊性造成的。)除此之外,一切都非常简单并且工作正常。

以上是关于为 TeamCity 构建选择 Git 分支的主要内容,如果未能解决你的问题,请参考以下文章

分支远程运行触发器不在Teamcity上运行

teamcity 中的 Git 短分支名称

TeamCity 构建链触发

如果没有首先构建新创建的发布分支,GitVersion不会碰到TeamCity中的开发分支构建的次要版本

使用 maven、teamcity 和 TFS 的分支策略

如何配置 TeamCity 构建代理以通过 SOCKS 代理使用 git 和 git:// 协议?