我正在尝试将分支名称放入内部版本号,但找不到正确的参数。我正在使用内部版本号格式:%teamcity.build.branch%.{0}
它可以工作,但是当它尝试构建默认分支“dev”时,teamcity 将其命名为<default>
.
如何解决?
我能够通过以下方式解决这个问题:
在我的 VCS Root 中 - 使用 git - 将我的分支规范设置为:
+:refs/heads/(master)
+:refs/heads/(release-*)
+:refs/heads/(hotfix-*)
创建配置参数:BuildNumberPrefix = SomeService.%teamcity.build.branch%.release_
将我的内部版本号格式设置为:%BuildNumberPrefix%%build.counter%
然后在我的构建步骤中添加一个命令行步骤作为第一步,使用以下脚本:
设置 t=%BuildNumberPrefix%%build.counter%
echo ##teamcity[buildNumber '%%t%%']
在构建项目时的 Team City 项目列表中,您应该看到在执行命令行步骤后,构建号的部分被删除。由于某种原因,重新评估使用 teamcity.build.branch 变量的 BuildNumberPrefix 会导致默认值消失并被分支名称替换。
希望这可以帮助某人。
看看它是否可以帮助您解决问题。引用http://youtrack.jetbrains.com/issue/TW-24147的第一条评论:
我们使用特殊的分支名称 (
<default>
) 是有原因的:当有多个具有不同默认分支的 VCS 根时,我们需要一个单独的分支名称来构建。您可以从构建参数 teamcity.build.vcs.branch 获取 VCS 根目录中使用的真实分支名称。<canonical VCS root name>
. 搜索 teamcity.build.vcs.branch。在 UI 中构建的“构建参数”选项卡上。