在发布管道中共享构建队列定义的变量?

时间:2019-03-13 18:36:43

标签: azure-devops azure-pipelines

我们如何在Release管道中使用Build管道队列定义的变量?

2 个答案:

答案 0 :(得分:1)

使用variable group并在内部版本和发行版之间共享变量组。

答案 1 :(得分:-1)

假设您在构建管道上创建了PipelineVariable之类的变量,并在队列时间分配了默认值或分配了一个值。假设您将参数值设置为Testing

在发布管道中,您可以使用Builds API获取队列时间参数。您可以使用调用API的嵌入式Powershell脚本并使用setvariable命令来保存发布变量,以使它们可用。如果要输入队列时间变量,则可能要使用它而不是变量组。

$uri = "https://dev.azure.com/{organization}/{project}/_apis/build/builds/$(Build.BuildId)"

$buildParameters = Invoke-RestMethod -uri $uri -Headers @{ Authorization = "Bearer 
$env:SYSTEM_ACCESSTOKEN" } -Method Get |
    Select-Object -ExpandProperty parameters | 
    ConvertFrom-Json

$buildParameters |
    Get-Member -MemberType NoteProperty |
    Select-Object -ExpandProperty Name |
    ForEach-Object { 
        Write-Host "##vso[task.setvariable variable=$_]$($buildParameters.$_)"
    }

现在在以下阶段中,您可以引用该值。例如,如果您创建了一个内联powershell脚本来打印该值:

Write-Host "$env:PIPELINEVARIABLE"

返回:

  

测试