我们可以覆盖文件输入中的 Azure DevOps 变量组值吗

Can we override Azure DevOps variable groups values from a file input

我在 Azure DevOps 中有一个完整的 CI/CD 管道并且它运行良好。现在我有一个 JSON 文件,其中包含发布的版本号。

我需要获取这个版本号作为一个全局变量。如何将文件值分配给全局变量。我需要使用此版本号作为我的构建管道 ID、docker 标记和发布管道 ID。

设置全局变量的方法是:

##vso[task.setvariable variable=name;]value

因此您可以编写一个 PowerShell 脚本,从 JSON 文件中读取发布版本并设置变量,例如:

$jsonFile = Get-Content path/to/json
$json = $jsonFile | ConvertFrom-Json
$version = $json.release.version
Write-Host "##vso[task.setvariable variable=releaseVersion;]$version"

现在您可以在 docker 标签等中使用变量 $(version)

只是为了添加到现有的答案,这里是你如何将构建 ID 设置为计算器值(因为你不能在构建开始之前设置它,因为它只在构建期间计算):

- pwsh: Write-Host "##vso[build.updatebuildnumber]${env:VERSION}"

假设 version 是您调用变量的方式。