我有一个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)?
答案 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整数值将增加一。