我的TFS回购具有以下结构:
Project
- Dev
- 1.0.0_Branch1
- 1.1.0_Branch2
- N.0.0_BranchN
分支是TFS中的实际分支。
我在TFS服务器上为此项目设置了自动CI构建。我遇到的问题是我需要TFS中的构建名称来使用分支的名称。
我已经尝试过这里列出的一些构建定义变量,例如:$(SourceBranchName)和$(Build.SourceBranchName),但所有这些变量都是使用Project的名称(本例中为Project)。
我希望将构建命名为1.0.0_Branch1.1,最后一个数字是修订版。
我想这样做的原因是,当我在构建结束时生成Nuget包时,可以使用正在构建的分支的版本对它们进行版本控制。目前,他们使用日期进行版本控制,这意味着最高版本只是最近构建的版本,实际情况可能并非如此。我不想每次都手动设置版本。
正在构建的所有程序集都已正确版本化,以匹配它们所在的分支。
有没有办法实现这个目标?
答案 0 :(得分:3)
对于构建定义,可以在构建号格式中使用$(SourceBranchName)
:
环境变量为BUILD_SOURCEBRANCHNAME
,因此它将在msbuild中以$(BUILD_SOURCEBRANCHNAME)
的形式提供。
可用变量列表位于:https://www.visualstudio.com/en-us/docs/build/define/variables#predefined-variables
答案 1 :(得分:1)
这可能是由您在构建定义中的“存储库”选项卡下配置的“映射”设置引起的。使用TFVC存储库构建时,BUILD_SOURCEBRANCHNAME
变量将填充工作空间的根服务器路径中的最后一个路径段。所以我想知道你的构建定义中的映射服务器路径是“$ / Project”而不是“$ / Project / Dev / 1.0.0_Branch1”。
TFVC repo branch:根服务器路径中的最后一个路径段 工作区。例如,在$ / teamproject / main中,此值为main。
有关详细信息,请参阅此链接:Predefined Variables。