我正在使用 Azure DevOps 管道来部署我的代码,现在我需要将变量值从部署作业传递到依赖它的后续作业。我已经阅读了这个例子,但它似乎根本不起作用。
我要做的是运行一个预配 Key Vault 的 Azure ARM 部署。密钥保管库的名称是从 ARM 部署作业中输出的,然后我尝试将该名称传递给另一个需要添加特定机密的作业。访问控制已处理,但我仍然需要传递名称。
我将问题归结为将变量从 a 传递deployment
到 a的基础知识job
。这是我完整的测试管道(几乎完全从这里复制):
trigger: none
stages:
- stage: X
jobs:
- deployment: A
pool:
vmImage: "ubuntu-16.04"
environment: test
strategy:
runOnce:
deploy:
steps:
- script: echo "##vso[task.setvariable variable=myOutputVar;isOutput=true]this is the deployment variable value"
name: setvarStep
- script: echo $(setvarStep.myOutputVar)
name: echovar
- job: B
dependsOn: A
pool:
vmImage: "ubuntu-16.04"
variables:
myVarFromDeploymentJob: $[ dependencies.A.outputs['deploy.setvarStep.myOutputVar'] ]
steps:
- script: "echo $(myVarFromDeploymentJob)"
name: echovar
一旦我运行这个,回显的值在作业中是空白的B
,但在部署中定义A
。为什么是这样?有没有办法把所有东西都放进去,dependencies.A.outputs
这样我就可以看到我必须处理什么?
如何将变量从runOnce
部署作业传递到常规作业?