在我的Azure生成管道(传统的,不是YAML)中,我将内部版本号设置为分支名称,然后是修订号变量。这是我的过程:管道->管道-> {我的管道}->编辑->选项->内部编号格式
$(SourceBranchName)$(Rev:.r)
在我的测试中,效果很好。
现在,在我的发布管道中,我运行的第一个脚本是一个PowerShell脚本,该脚本采用内部版本号,并将其应用于我创建的本地变量(MyBuild)。脚本如下:
Write-Host "Pipeline = $($pipeline | ConvertTo-Json -Depth 100)"
$buildNumber = $Env:BUILD_BUILDNUMBER
$pipeline.variables.MyBuild.value = $buildNumber
此变量稍后在管道中使用,以创建一个存放我的发行文件的文件夹。
$(BuildDirectory)/$(MyBuild)/Debug
出于某种原因,我的变量总是落后一个。例如,如果我的内部版本号是master.5,则由我的发布管道创建的文件夹是master.4。我试图更改脚本在管道中的顺序,但这并不能解决任何问题。这很奇怪,因为我的构建管道是正确的(总是正确命名,例如master.1,master.2,master.3等),但是我的Release Pipeline变量总是落后一个版本。
Powershell脚本更新自定义内部版本号
- powershell: |
[string]$version="$(Build.Repository.Name)_SomeCustomData_$(Build.BuildId)"
Write-Output "##vso[build.updatebuildnumber]$(Version)"
displayName: Set Build Number