【问题标题】:Azure Dev Ops Build Parameter to define BuildNumber?Azure Devops 构建参数来定义内部版本号?
【发布时间】:2018-09-20 16:32:57
【问题描述】:

我有一个 git repo,有一个 master 分支,我们从中获取 feature\myFeature,继续工作,然后将拉取请求发送回 master .. 非常简单。

feature 分支被推送到 git 存储库时,我们有一个在该分支上运行的构建过程,并生成一个构建。它从项目的程序集中获取 semver 信息 major.minor.patch..

我想做的是(取决于构建是在feature 还是master)更改构建名称的构造..

类似:

  • feature --> 1.0.3-alpha1, 1.0.3-alpha2, 1.0.3-alpha3
  • master --> 1.0.3-rc1, 1.0.3-rc2

我现在面临的挑战是,从使用 $(Rev:r) 得出的最后数字似乎无法用于我为计算内部版本号而编写的 PowerShell 任务中。 ..

我尝试围绕设置内部版本号进行一些测试,例如:

Write-Output ("##vso[task.setvariable variable=ReleaseType]alpha")

然后做...

$(ReleaseType)$(Rev:.r)

似乎将发布名称“锁定”为 ReleaseType var..的任何原始值。

我尝试过的另一个选项是:

Write-Output ("##vso[build.updatebuildnumber]"-alpha")

但这只会覆盖选项表内部版本号格式框中的任何内容...

我正在尝试做的事情可能吗?我想另一种方法是为每种分支类型设置不同的构建过程。似乎有点 OTT .. 有什么方法可以从 PowerShell 派生 $(Rev:.r) 吗?

【问题讨论】:

  • 我不知道它是否有帮助,但我用短哈希和分支名称Write-Host("##vso[build.updatebuildnumber]$env:BUILD_BUILDNUMBER" + "_" + $env:BUILD_SOURCEVERSION.Substring(0,9) + "+" + $env:BUILD_SOURCEBRANCHNAME)更新内部版本号@
  • 在更新内部版本号之前,您可以测试$env:BUILD_SOURCEBRANCHNAME 的值以查看它是master 还是其他分支...
  • 我将在今天晚些时候发布我当前的解决方案 :)

标签: git azure-devops azure-pipelines azure-pipelines-build-task


【解决方案1】:

我们不能在 PowerShell 中使用令牌 $(Rev:.r)

如果您只想更改构建名称的构造,例如:

  • feature --> 1.0.3-alpha1, 1.0.3-alpha2, 1.0.3-alpha3
  • master --> 1.0.3-rc1, 1.0.3-rc2

然后您可以创建两个 CI 构建管道(一个用于 feature,另一个用于 master)并像这样直接设置 Build number format

  • feature --> 1.0.3-alpha$(rev:.r)
  • master --> 1.0.3-rc$(rev:.r)

根据您的描述,您可以使用项目程序集中的 semver info major.minor.patch 作为内部版本号的一部分(前缀)。在这种情况下,令牌$(rev:.r) 不是增量的,因为前缀总是在变化,所以$(rev:.r) 的值总是1。详情请见Tokens

使用 $(Rev:.r) 确保每个完成的构建都有一个唯一的名称。 构建完成后,如果构建号中没有其他内容 更改后,Rev 整数值加一。

【讨论】:

  • 感谢安迪的回答,我最终得出了关于需要多个管道的相同结论。为了清楚起见,我想做我的工作并将程序集设置为 x.y.z,然后增加多个“版本”相同的构建,即x.y.z-prerelease1,哎呀发现了一个错误 x.y.z-prerelease2 ...有趣的是,有没有“简单”的方法来读取程序集版本?目前我使用正则表达式和字符串操作,然后更新 build.updatebuildnumber
  • github.com/GitTools/GitVersion 是一个可以帮助您在使用 git 时管理程序集版本的工具...
猜你喜欢
  • 2020-02-05
  • 1970-01-01
  • 1970-01-01
  • 2020-04-08
  • 2019-10-15
  • 1970-01-01
  • 1970-01-01
  • 2022-11-15
  • 1970-01-01
相关资源
最近更新 更多