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

tjd*_*bts 4 devops azure-devops azure-pipelines-release-pipeline azure-devops-rest-api

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

Hug*_*Lin 6

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

在此输入图像描述

作为解决方法,您可以通过变量组跨作业和阶段使用变量。

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

PUT https://dev.azure.com/{organization}/{project}/_apis/distributedtask/variablegroups/{groupId}?api-version=5.1-preview.1
Run Code Online (Sandbox Code Playgroud)

这是一个使用 powershell 脚本更新变量组的案例

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

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

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

详细步骤和指南请参考此博客