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

Pass Azure devops release pipeline(Classic editor) output variable to multiple jobs in same stage or to multiple stages outside

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

在经典编辑器中,恐怕在不同的工作中输出变量是不可行的。请参考这个 document .

作为解决方法,您可以通过 variable groups 在作业和阶段之间使用变量。

先定义变量组中的变量,然后通过rest api or azure cli更新变量组,将定义的变量替换为任务生成的变量值

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

这里有一个关于用powershell脚本更新变量组。

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

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

关于使用RESTAPI更新发布定义变量值的详细信息,你可以按照这个

详细步骤和指南,请参考这篇blog