成功构建后,将标签格式配置为 $(GitVersion.NuGetVersion) ,结果标记设置为 $(GitVersion.NuGetVersion) ,而不是该变量的实际扩展值 .
$(GitVersion.NuGetVersion)
在构建输出日志记录中,有2个部分/计划:Build和Finalize Build .
据推测,一旦构建代理移动到第二部分/计划,所有变量上下文/状态就会丢失 .
如果在Finalize Build部分期间GitVersion变量的上下文丢失,我应该如何使用生成的GitVersion标记源?
https://github.com/Microsoft/vsts-agent/issues/716
我在issue on GitHub回答了你的问题:
只要VSTS不提供适当的API,我认为在GitVersion任务中我们无法做任何事情 . GitVersion目前只使用## vso [task.setvariable] value命令定义变量 . 变量在任务上下文中明确定义,因此可用于后续任务,但不能在上下文之外 . 特殊情况是存在特殊命令的构建号## vso [build.updatebuildnumber]我们正在使用的构建号 . 解决方法可以是添加添加标记的附加任务,该任务将起作用,因为任务将位于相同的上下文中,因此可以访问该变量 .
实现我想要的结果的具体步骤:
设置VSTS项目/存储库/构建预先请求:https://www.visualstudio.com/en-us/docs/build/scripts/git-commands#enable-scripts-to-run-git-commands
用于标记的Git文档(完整性):https://git-scm.com/book/en/v2/Git-Basics-Tagging
我使用 Tool: git 添加了2个命令行任务(批处理任务将是一个更好的主意):
git
Arguments: tag -a $(GitVersion_NuGetVersion) -m "Auto-Tagged v$(GitVersion_NuGetVersion) by Build ($(Build.BuildId))"
tag -a $(GitVersion_NuGetVersion) -m "Auto-Tagged v$(GitVersion_NuGetVersion) by Build ($(Build.BuildId))"
Arguments: push origin $(Build.BuildNumber)
push origin $(Build.BuildNumber)
2 回答
我在issue on GitHub回答了你的问题:
实现我想要的结果的具体步骤:
设置VSTS项目/存储库/构建预先请求:
https://www.visualstudio.com/en-us/docs/build/scripts/git-commands#enable-scripts-to-run-git-commands
用于标记的Git文档(完整性):
https://git-scm.com/book/en/v2/Git-Basics-Tagging
我使用 Tool:
git
添加了2个命令行任务(批处理任务将是一个更好的主意):Arguments:
tag -a $(GitVersion_NuGetVersion) -m "Auto-Tagged v$(GitVersion_NuGetVersion) by Build ($(Build.BuildId))"
Arguments:
push origin $(Build.BuildNumber)