将Azure devops发布管道(经典编辑器)输出变量传递到同一阶段的多个作业或外部的多个阶段

时间:2020-06-01 08:36:24

标签: azure-devops devops azure-pipelines-release-pipeline azure-devops-rest-api

我正在使用发布管道经典编辑器,并且要求将任务中生成的输出变量传递给同一阶段或外部阶段的多个作业。当前,此输出变量仅在同一作业内可用,我必须在多个作业和阶段中编写相同的任务,我觉得这是多余的。有什么办法可以实现吗?。

1 个答案:

答案 0 :(得分:2)

在经典编辑器中,恐怕在其他作业中输出变量是不可行的。请参阅此document

enter image description here

作为一种解决方法,您可以通过variable groups在各个作业和阶段中使用变量。

首先在变量组中定义变量,然后通过rest apiazure cli更新变量组,然后将定义的变量替换为任务生成的变量的值。

PUT https://dev.azure.com/{organization}/{project}/_apis/distributedtask/variablegroups/{groupId}?api-version=5.1-preview.1

这是一个case关于使用powershell脚本更新变量组的信息。

另一种解决方法:您可以使用发布管道变量在所有阶段共享值。解决方案是在设置变量的阶段更新Release Pipeline变量的Release Definition。

  • 在发布定义变量Variable中定义一个变量。
  • 使用REST API Definitions - Update来更新 释放代理作业中的定义变量。
  • 在下一个版本中使用发行版定义变量的更新值 代理商工作。

有关使用REST API更新发布定义变量的值的详细信息,您可以遵循此ticket

有关详细步骤和指南,请参阅此blog