成功构建后,将标签格式配置为$(GitVersion.NuGetVersion)
,生成的标签设置为$(GitVersion.NuGetVersion)
不是该变量的实际扩展值。
在构建输出日志中,有 2 个部分/计划:构建和完成构建。
据推测,一旦构建代理移动到第二部分/计划,所有变量上下文/状态都将丢失。
如果 GitVersion 变量的上下文在 Finalize Build 部分丢失,我应该如何使用生成的 GitVersion 标记源?
成功构建后,将标签格式配置为$(GitVersion.NuGetVersion)
,生成的标签设置为$(GitVersion.NuGetVersion)
不是该变量的实际扩展值。
在构建输出日志中,有 2 个部分/计划:构建和完成构建。
据推测,一旦构建代理移动到第二部分/计划,所有变量上下文/状态都将丢失。
如果 GitVersion 变量的上下文在 Finalize Build 部分丢失,我应该如何使用生成的 GitVersion 标记源?
我在 GitHub 上的问题中回答了你的问题:
只要 VSTS 不提供适当的 API,我认为在 GitVersion 任务中我们无能为力。GitVersion 目前只使用
##vso[task.setvariable]value
命令定义变量。变量在任务上下文中明确定义,因此可用于后续任务,但不能在上下文之外。
##vso[build.updatebuildnumber]build number
一个特殊情况是我们正在使用的特殊命令存在的内部版本号。一种解决方法可以是添加一个添加标签的附加任务,这将起作用,因为该任务将在相同的上下文中,因此可以访问该变量。
达到我想要的结果的具体步骤:
我用Tool: 添加了 2 个命令行任务(一个批处理任务会更好)git
:
tag -a $(GitVersion_NuGetVersion) -m "Auto-Tagged v$(GitVersion_NuGetVersion) by Build ($(Build.BuildId))"
push origin $(Build.BuildNumber)