gpt4 book ai didi

azure - 在 Azure DevOps Pipelines 中跨阶段共享变量

转载 作者:行者123 更新时间:2023-12-03 07:31:08 30 4
gpt4 key购买 nike

我试图弄清楚如何在我的脚本中跨 ADO 管道共享自定义变量。下面是我的脚本,分为两个阶段。

我将 curProjVersion 设置为输出变量并尝试从不同的阶段访问它。我这样做对吗?

stages:
- stage: Build
displayName: Build stage
jobs:
- job: VersionCheck
pool:
vmImage: 'ubuntu-latest'
displayName: Version Check
continueOnError: false
steps:

- script: |
echo "##vso[task.setvariable variable=curProjVersion;isOutput=true]1.4.5"
name: setCurProjVersion
displayName: "Collect Application Version ID"

- stage: Deploy
displayName: Deploy stage
dependsOn: Build
variables:
curProjVersion1: $[ dependencies.Build.VersionCheck.outputs['setCurProjVersion.curProjVersion'] ]
jobs:
- job:
steps:
- script: |
echo $(curProjVersion1)

最佳答案

更新:

跨阶段共享变量功能已于 Sprint 168 发布现在。

请使用以下格式访问上一阶段的输出变量:

stageDependencies.{stageName}.{jobName}.outputs['{stepName}.{variableName}'] 

原文:

Share variables across stages in Azure DevOps Pipelines

恕我直言,它不支持共享一个阶段定义的变量并将其传递到另一个阶段。

这是我们计划添加的功能,但到目前为止,还不支持。您可以关注这个Github issue ,很多人和你有同样的需求。您可以跟踪该信息。

到目前为止,我们仅支持设置 multi-job output variable ,但这仅支持 YAML。对于经典编辑器,没有任何计划在版本中添加此功能。

为了解决这个问题,您可以在各个阶段之前预定义变量。但一件重要的事情是,如果你在一个阶段改变它的值。新值无法传递到下一阶段。具有新值的变量的生命周期仅存在于阶段中。

关于azure - 在 Azure DevOps Pipelines 中跨阶段共享变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57485621/

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