【问题标题】:Label Sources with $(GitVersion.NuGetVersion) creates Tag with variable name, not value使用 $(GitVersion.NuGetVersion) 标记源创建具有变量名称而不是值的标记
【发布时间】:2016-12-07 19:52:13
【问题描述】:

成功构建后,将标签格式配置为$(GitVersion.NuGetVersion),生成的标签设置为$(GitVersion.NuGetVersion),而不是该变量的实际扩展值。

在构建输出日志中,有 2 个部分/计划:构建和完成构建。

据推测,一旦构建代理移动到第二个部分/计划,所有变量上下文/状态都将丢失。

如果 GitVersion 变量的上下文在 Finalize Build 部分丢失,我应该如何使用生成的 GitVersion 标记源?

https://github.com/Microsoft/vsts-agent/issues/716

【问题讨论】:

  • 标记在服务器上完成,在代理上下文中设置的变量在 finalize 中不可用。

标签: git azure-devops tfsbuild azure-pipelines gitversion


【解决方案1】:

我在issue on GitHub回答了你的问题:

只要 VSTS 不提供适当的 API,我认为在 GitVersion 任务中我们无能为力。 GitVersion 目前只使用##vso[task.setvariable]value command 定义变量。变量在任务上下文中明确定义,因此可用于后续任务,但不能在上下文之外。

一种特殊情况是存在我们正在使用的特殊命令##vso[build.updatebuildnumber]build number 的内部版本号。

一种解决方法可以是添加一个添加标签的附加任务,这将起作用,因为该任务将在相同的上下文中,因此可以访问变量。

【讨论】:

  • 谢谢!欣赏它。
【解决方案2】:

达到我想要的结果的具体步骤:

  1. 设置 VSTS 项目/存储库/构建先决条件:
    https://www.visualstudio.com/en-us/docs/build/scripts/git-commands#enable-scripts-to-run-git-commands
  2. 用于标记的 Git 文档(为了完整性):
    https://git-scm.com/book/en/v2/Git-Basics-Tagging

我使用 Tool: git:

添加了 2 个命令行任务(一个批处理任务会更好)
  1. 参数: tag -a $(GitVersion_NuGetVersion) -m "Auto-Tagged v$(GitVersion_NuGetVersion) by Build ($(Build.BuildId))"
  2. 参数: push origin $(Build.BuildNumber)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-09-09
    • 2021-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-18
    • 2011-12-16
    • 1970-01-01
    相关资源
    最近更新 更多