在我的 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 等),但我的发布管道变量始终落后一个修订版。
最佳答案
用于更新自定义内部版本号的 Powershell 脚本
- powershell: |
[string]$version="$(Build.Repository.Name)_SomeCustomData_$(Build.BuildId)"
Write-Output "##vso[build.updatebuildnumber]$(Version)"
displayName: Set Build Number
关于Azure Pipelines - 将自定义变量设置为内部版本号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61373709/