gpt4 book ai didi

azure-devops - Azure DevOps Pipeline 在部署中定义变量并在后续作业中重用

转载 作者:行者123 更新时间:2023-12-03 08:45:57 25 4
gpt4 key购买 nike

我正在使用 Azure DevOps 管道来部署我的代码,现在我需要将变量值从部署作业传递到依赖于它的后续作业。我读过 this example但它似乎根本不起作用。

我想要做的是运行一个配置 Key Vault 的 Azure ARM 部署。 key 保管库的名称是从 ARM 部署作业输出的,然后我尝试将该名称传递给另一个需要添加特定 secret 的作业。访问控制已完成,但我仍然需要传递名称。

我已将问题归结为将变量从部署传递到作业的基础知识。这是我完整的测试管道(几乎完全复制自 here ):

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中定义。为什么是这样?有没有办法对 dependency.A.outputs 中的所有内容进行模拟,以便我可以看到我必须使用的内容?

如何将变量从 runOnce 部署作业传递到常规作业?

最佳答案

我已经解决了。问题是文档 here指定此模式用于获取 runOnce 的变量部署:

$[dependencies.<job-name>.outputs['<lifecycle-hookname>.<step-name>.<variable-name>']]

这实际上是错误<lifecycle-hookname>参数应替换为部署的名称,如下所示:

$[dependencies.<job-name>.outputs['<job-name>.<step-name>.<variable-name>']]

来自 this documentation 的示例(向下滚动一点)是正确的。

我已经测试过并有效的完整示例管道:

trigger: none

stages:
- stage: X
jobs:
- deployment: A # This name is important
pool:
vmImage: 'ubuntu-16.04'
environment: staging
strategy:
runOnce:
deploy:
steps:
- script: echo "##vso[task.setvariable variable=myOutputVar;isOutput=true]this is the deployment variable value"
name: setvarStep # This name is also important
- script: echo $(setvarStep.myOutputVar)
name: echovar

- job: B
dependsOn: A
pool:
vmImage: 'ubuntu-16.04'
variables:
myVarFromDeploymentJob: $[ dependencies.A.outputs['A.setvarStep.myOutputVar'] ]
steps:
- script: "echo $(myVarFromDeploymentJob)"
name: echovar

关于azure-devops - Azure DevOps Pipeline 在部署中定义变量并在后续作业中重用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61476512/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com