用于定义BuildNumber的Azure Dev Ops生成参数?

时间:2018-09-20 16:32:58

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

我有一个git repo,有一个master分支,我们从其中提取feature\myFeature,然后将拉取请求引发回master ..非常简单。

feature分支推送到git repo时,我们有一个在该分支上运行并生成构建的构建过程。它从项目的汇编中获取semver info 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变量的任何原始值。

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

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

但这只会覆盖选项表“内部版本号格式”框中的所有内容...

我想做的是可能的吗?我猜是一种替代方法,每种分支类型都有一个不同的生成过程..似乎有点OTT ..有没有办法从PowerShell导出$(Rev:.r)?

1 个答案:

答案 0 :(得分:0)

我们无法在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信息major.minor.patch作为内部版本号的一部分(前缀)。在这种情况下,令牌$(rev:.r)不会递增,因为前缀始终在变化,因此$(rev:.r)的值将始终为1。有关详细信息,请参见Tokens

  

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

enter image description here

相关问题