我们可以覆盖文件输入中的 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
是您调用变量的方式。
我在 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
是您调用变量的方式。