【问题标题】:Pass variables from one job to an other in an azure multi stage pipeline (YAML)在 azure 多级管道 (YAML) 中将变量从一个作业传递到另一个作业
【发布时间】:2020-07-30 19:18:36
【问题描述】:

我有一个非常基本的 YAML azure 管道

jobs:
- job: Foo
  steps:
  - bash: |
      echo "Create variable xyz"
      echo "##vso[task.setvariable variable=xyz;]yes"
    displayName: 'Determine slot name'
  - bash: |
     echo "Var is: $(xyz)"
    displayName: 'Show variable'
- job: Bar
  dependsOn: Foo
  steps:
  - bash: |
      echo "Hello world $(Foo.xyz)"
    displayName: 'Show variable'

在名为Foo 的第一个JOB 中,变量xyz 设置为yes。哪个行得通,因为我可以在第二步中用

行显示它
echo "Var is: $(xyz)"

但是,我想在下一份工作中使用该变量(名为 Bar)。但无论我做什么,它都不存在。我试过像

 echo "Hello world $(xyz)"

 echo "Hello world $(Foo.xyz)"

但是当我运行管道时两者都给出以下错误

 line 1: Foo.xyz: command not found

如何在作业之间共享该变量?并且在阶段之间共享也很好!

【问题讨论】:

    标签: azure-devops yaml azure-pipelines multistage-pipeline


    【解决方案1】:

    所以你实际上有两件事。

    将变量从作业传递到作业,这是可能的:

    你试过multi job output variable:

    jobs:
    
    # Set an output variable from job A
    - job: A
      pool:
        vmImage: 'vs2017-win2016'
      steps:
      - powershell: echo "##vso[task.setvariable variable=myOutputVar;isOutput=true]this is the value"
        name: setvarStep
      - script: echo $(setvarStep.myOutputVar)
        name: echovar
    
    # Map the variable into job B
    - job: B
      dependsOn: A
      pool:
        vmImage: 'ubuntu-16.04'
      variables:
        myVarFromJobA: $[ dependencies.A.outputs['setvarStep.myOutputVar'] ]  # map in the variable
                                                                              # remember, expressions require single quotes
      steps:
      - script: echo $(myVarFromJobA)
        name: echovar
    

    请查看question

    将变量从一个阶段传递到另一个阶段:目前还不能开箱即用。

    请查看question。 Merlin Liang - MSFT 在那里解释了这一点。

    解决方法

    您可以尝试将变量写入某个文件publish it as pipelineartifact,在另一个阶段下载此工件并加载变量。请检查此link

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-05
      • 2018-06-27
      • 1970-01-01
      • 2020-12-05
      • 2020-05-03
      • 1970-01-01
      • 2023-04-02
      • 1970-01-01
      相关资源
      最近更新 更多