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

Azure devops 将Azure devops发布管道(经典编辑器)输出变量传递给同一阶段中的多个作业或外部的多个阶段,azure-devops,devops,azure-pipelines-release-pipeline,azure-devops-rest-api,Azure Devops,Devops,Azure Pipelines Release Pipeline,Azure Devops Rest Api,我使用的是release pipeline classic编辑器,需要将任务中生成的输出变量传递给同一阶段中的多个作业或传递给外部阶段。目前,这个输出变量只在同一个作业中可用,我必须在多个作业和阶段中编写同一个任务,我觉得这是一种冗余。有什么方法可以实现它吗?在经典编辑器中,我担心在不同的作业中输出变量是不可行的。请参考这个 作为一种变通方法,您可以通过在作业和阶段之间使用变量 首先在变量组中定义变量,然后通过或更新变量组,并用任务生成的变量值替换定义的变量 PUT https://dev.a

我使用的是release pipeline classic编辑器,需要将任务中生成的输出变量传递给同一阶段中的多个作业或传递给外部阶段。目前,这个输出变量只在同一个作业中可用,我必须在多个作业和阶段中编写同一个任务,我觉得这是一种冗余。有什么方法可以实现它吗?

在经典编辑器中,我担心在不同的作业中输出变量是不可行的。请参考这个

作为一种变通方法,您可以通过在作业和阶段之间使用变量

首先在变量组中定义变量,然后通过或更新变量组,并用任务生成的变量值替换定义的变量

PUT https://dev.azure.com/{organization}/{project}/_apis/distributedtask/variablegroups/{groupId}?api-version=5.1-preview.1
下面是一个关于使用powershell脚本更新变量组的示例

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

  • 在发布定义变量中定义一个变量
  • 使用RESTAPI更新 在代理作业中释放定义变量
  • 在下一步中使用release definition变量的更新值 代理工作
有关使用RESTAPI更新发布定义变量的值的详细信息,您可以遵循以下步骤


有关详细的步骤和指南,请参阅。

我使用的PAT令牌方法与CI构建不同,我使用更新的变量触发发布。