我正在尝试将一些逻辑添加到我们的TFS构建定义的构建标签字段之一。
目前设置如下:
请注意自定义字段主版本号和上一个主要发布日期。我想修改Build Number Format字段,以便最终结果如下:
<BuildDefinitionName> <Major Version Number>.<# Days since Previous Major Release Date [4 Digits]>.<Revision Number>
所以示例输出将是:
DebugBuild 6.0.0012.1
0012
意味着12天。
我怎样才能做到这一点?我无法理解这些$(Var)
字段的声明位置,因为它们似乎与Build流程模板变量和参数分开,而我声明的主版本号和上一个主要发布日期参数确实存在于构建中处理模板并分配给参数MajorVersionNumber
和PreviousMajorReleaseDate
。
答案 0 :(得分:1)
我所做的是customise the TFS build workflow并在“更新内部版本号”步骤之前添加自定义代码活动。
此代码活动接受BuildNumberFormat
变量,替换我的任何自定义标记,并将结果传递给我自己的localBuildNumberFormat
变量。然后我将localBuildNumberFormat
传递给“更新内部版本号”活动。
所以这个过程就像:
$(CustomToken)_$(BuildDefinitionName)_$(Rev:.r)
$(CustomToken)_$(BuildDefinitionName)_$(Rev:.r)
DavesBuild_$(BuildDefinitionName)_$(Rev:.r)
DavesBuild_$(BuildDefinitionName)_$(Rev:.r)
你实际上是在将TFS传递给TFS之前替换TFS无法理解的所有令牌。
如何获得自定义令牌的值取决于您,您可以将它们作为参数从构建定义/请求传递,或者在代码活动中查找它们(我在我的两个中都这样做)。