【问题标题】:TFS 2015 Build definition - override Build number with variablesTFS 2015 构建定义 - 使用变量覆盖内部版本号
【发布时间】:2017-11-10 09:20:15
【问题描述】:

我们在日常的敏捷冲刺中使用了很好的 $(date:yyyy.MM.dd)$(rev:.r) 内部版本号格式。但是,必须使用更简单的 1.0.0.rev 架构对版本进行编号。

理想情况下,我想将内部版本号作为变量提供,它会在“队列构建”对话框中自动展开,可以在其中被覆盖。怎么办?

我尝试将 $(date:yyyy.MM.dd)$(rev:.r) 格式移动到一个变量中,并在常规选项卡中使用该变量,结果出现错误 400。

【问题讨论】:

  • 为什么要将内部版本号作为变量提供?你只是想保留 $(date:yyyy.MM.dd)$(rev:.r) 吗?或者您想在构建步骤中使用内部版本号?
  • @Patrick-MSFT 我希望能够在对新版本进行排队时覆盖版本号(并使用“发布”格式更改正常格式) - 就像我能够更改一样任何其他构建变量。
  • 不能直接更改版本号的队列构建中的值。如果要更改majorversion或minorversion。您需要在定义中手动更改它。您可以在我的回答中参考此博客incyclesoftware.com/2015/06/… 的详细方式。

标签: tfs tfs-2015


【解决方案1】:

您可以直接使用Environment variables 如Build.BuildNumber /BUILD_BUILDNUMBER

使用它就等于完成构建的名称。您可以在General tab 上指定生成此值的内部版本号格式。

如果您只想在 TFS Build vNext 中生成自定义版本号,例如 1.0.0.rev 架构。你可以看看下面的博客:

【讨论】:

  • 第二个链接提供了一种实现方法 - 从构建步骤覆盖变量。谢谢!
  • 第二个链接失效了... :(
【解决方案2】:

这很简单。

1) 只需像这样创建一个 Powershell 脚本

$FinalVersion=Some-Function-To-Calculate-Version
$BuildDefName = $Env:BUILD_DEFINITIONNAME
Write-Host "##vso[build.updatebuildnumber]$($BuildDefName)-$($FinalVersion)"

2) 在您的 vNext 构建定义中,对于“内部版本号格式”,只需将其设置为任何值。没关系,因为内部版本号将被覆盖。

3) 在相同的 vNext 构建定义步骤中,将第一步添加为 Powershell 步骤,并将步骤 1 中的脚本设置为执行。如果您想传递变量以计算您的内部版本号,您可以稍后自定义。

4) 对构建进行排队并查看结果。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-03-25
    • 1970-01-01
    • 2016-04-24
    • 2016-05-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多