我正在尝试使用 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)'"
所以我想问题是在管道期间创建的这个变量没有All的范围。
然后我尝试将管道变量添加到“GitVersion.MajorMinorPatch”的管道中,希望这是在正确的范围内,并希望当“task.setvariable”命令运行时,这将设置这个更高的变量值范围变量。
但是在这种情况下,我刚刚创建了一个标签“v”。
所以我有点卡住了。不知何故,我需要能够在 ALL 范围内动态创建或设置一个变量,其中包含我想在此处标记的值。
我将非常感谢您对此的任何想法。