【发布时间】:2021-03-20 23:16:45
【问题描述】:
我希望 Azure DevOps 管道中的一个阶段根据前一阶段中设置的变量的内容来执行。
这是我的管道:
stages:
- stage: plan_dev
jobs:
- job: terraform_plan_dev
steps:
- bash: echo '##vso[task.setvariable variable=terraform_plan_exitcode;isOutput=true]2'
name: terraform_plan
- stage: apply_dev
dependsOn: plan_dev
condition: eq(stageDependencies.plan_dev.terraform_plan_dev.outputs['terraform_plan.terraform_plan_exitcode'], '2')
jobs:
- deployment: "apply_dev"
...
如果plan_dev 阶段没有显示任何变化,则该想法是跳过apply_dev 阶段。背景是我们在plan_dev 阶段手动批准部署,如果没有要批准的更改,我们希望跳过该阶段。
不幸的是,这似乎不起作用。无论变量terraform_plan_exitcode是否设置为期望值(2),都会跳过apply_dev阶段。
对于语法,我遵循documentation here 说:
stageDependencies.StageName.JobName.outputs['StepName.VariableName']
【问题讨论】:
标签: azure azure-devops azure-pipelines