将输出变量传递到不同的阶段

时间:2020-04-08 11:11:35

标签: azure-devops multistage-pipeline

我在Azure DevOps中有一个基本上看起来像这样的管道

stage: BuildStage
   job: SetUp
   job: Compile
stage: DeployStage
   job: Deploy

SetUp作业中,我定义了一个输出变量,例如,可以在Compile作业中使用

variables:
   MyVariableFromSetUp: $[ dependencies.SetUp.outputs['MyVariable'] ]

问题是,如何在“部署”作业中执行相同的操作?我不想运行SetUp阶段两次,因为计算MyVariable的值很耗时,因此我必须对其进行缓存。

DeployStage具有BuildStage的dependsOn,但是看来我无法按预期使用dependencies。该文档在处理变量时未提及多阶段情况。

1 个答案:

答案 0 :(得分:1)

嘿,根据我的发现,目前没有直接的方法可以执行此操作,您将遵循以下三种方法之一

  1. 使用此方法https://medium.com/microsoftazure/how-to-pass-variables-in-azure-pipelines-yaml-tasks-5c81c5d31763

  2. 将其作为工件值传递
  3. 使用VSTeam powershell模块https://www.donovanbrown.com/post/Passing-variables-from-stage-to-stage-in-Azure-DevOps-release通过API端点传递它,类似的方法也可以在https://stefanstranger.github.io/2019/06/26/PassingVariablesfromStagetoStage/

  4. 中找到