gpt4 book ai didi

Azure管道: Passing variable to multiple stages

转载 作者:行者123 更新时间:2023-12-02 23:02:10 24 4
gpt4 key购买 nike

是否可以声明一个变量然后将其传递给下游?我在 StageA -> StageB -> StageC 下面有一张图片我在 StageA 上获取存储帐户的 URL,并且希望将其用于 Stage B 和 StageC

但是如果我使用 [stagedependency.StageA.JobA.outputs['var'],它仅适用于 StageB 而不适用于 StageC

- stage: 'StageC'
dependsOn: 'StageB'
pool:
vmImage: 'windows-latest'
variables:
blobUri: $[stageDependencies.StageA.JobA.outputs['createOutput.blobUri']]
jobs:
- job: 'JobC'
steps:
- checkout: none
- download: none
- powershell: |
echo JobBUri: $(blobUri)

enter image description here

也许我在某个地方错过了它,但这是否意味着您只能从您依赖的直接阶段获取变量?

示例:

trigger:
- master

pool:
vmImage: ubuntu-latest

stages:
- stage: 'StageA'
jobs:
- job: 'JobA'
steps:
- task: Powershell@2
name: 'createOutput'
inputs:
targetType: 'inline'
script: |
Write-Output "##vso[task.setvariable variable=blobUri;isOutput=true]www.google.com"
- stage: 'StageB'
dependsOn: 'StageA'
pool:
vmImage: 'windows-latest'
variables:
blobUri: $[stageDependencies.StageA.JobA.outputs['createOutput.blobUri']]
jobs:
- job: 'JobB'
steps:
- powershell: |
echo JobBUri: $(blobUri)

- stage: 'StageC'
dependsOn: 'StageB'
pool:
vmImage: 'windows-latest'
variables:
blobUri: $[stageDependencies.StageA.JobA.outputs['createOutput.blobUri']]
jobs:
- job: 'JobC'
steps:
- powershell: |
echo JobBUri: $(blobUri)

最佳答案

尝试一下这个,阶段 A 中设置的变量可能会在阶段 C 中通过 stageDependency.StageA 可用

- stage: 'StageC'
dependsOn:
- StageA
- StageB

其他解决方法是在阶段 B 中再次将此变量设置为输出变量,并通过 stageDependency.StageB(...) 从 C 访问它

摘自发行说明

https://learn.microsoft.com/en-us/azure/devops/release-notes/2020/sprint-168-update#jobs-can-access-output-variables-from-previous-stages

默认情况下,管道中的每个阶段都依赖于 YAML 文件中前一个阶段。因此,每个阶段都可以使用前一阶段的输出变量。您可以更改依赖关系图,这也会更改可用的输出变量。例如,如果阶段 3 需要阶段 1 中的变量,则需要声明对阶段 1 的显式依赖。

关于Azure管道: Passing variable to multiple stages,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66278125/

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