我正在尝试使用GitVersion在成功构建后将当前版本号作为标签设置到GIT提交上。感觉好像不是第一个这样做的人,但我很难找到可行的方法。
Azure Devops Pipeline在"获取源代码"选项中提供了"标记源"功能。我已经设置了这个功能,并设置了一个变量,该变量由我其中一个代理任务(GitVersion)设置。
我可以在调试日志中看到,我添加到管道中的GitVersion组件正在设置此变量。
2019-12-06T20:54:20.2390794Z ##[debug]Processed: ##vso[task.setvariable variable=GitVersion.MajorMinorPatch;]2.98.0
然而,如果我只是这样离开它,我会得到一个被创建为"v$(GitVersion.MajorMinorPatch)"的标签,这意味着在创建标签的时候,该变量已不存在。
标签格式帮助工具提示说:“标签格式可以是用户定义或预定义变量的组合,其范围为“全部”。例如:'$ (Build.DefinitionName)$(Build.DefinitionVersion)$(Build.BuildId)$(Build.BuildNumber)$(My.Variable) '”。
所以我想问题在于在管道期间创建的此变量没有全局作用域。
然后我尝试向"GitVersion.MajorMinorPatch"的管道添加一个管道变量,希望这是正确的范围,并希望当运行"task.setvariable"命令时,它将设置更高范围变量的变量值。 然而,在这种情况下,我只是创建了一个标签“v”。
所以我有点困惑。不知何故,我需要能够动态地创建或设置一个变量,其作用域为ALL,并具有我想要标记的值。
如果您有任何想法,我将非常感激。
$(Build.BuildNumber)
设置为所需的值吗?然后将其设置为标记值?这需要使用不同的日志命令来设置构建号:build.updatebuildnumber
而不是task.setvariable
。请参见:https://dev59.com/d1oU5IYBdhLWcg3w15ay#37048559 - jessehouwing