如何从不同的变量组Azure管道访问相同的变量?

时间:2020-03-25 12:12:04

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

我正在使用azure-pipelines.yaml构建多个阶段,每个阶段具有相同的变量,即var_key,但是每个阶段具有不同的值,为此我具有不同的Azure库组

  1. dev_group
  2. qa_group

azure-pipelines.yaml

name: $(Date:yyyyMMdd)$(Rev:.r)

pr:
  branches:
    include:
    - develop
    - master

trigger:
  branches:
    include:
    - develop
    - master

variables:
  group: group1, group2, group3
  BuildNumber: $(Build.BuildNumber)

stages:
  - stage: debug
    jobs:
      - job: DebugConditions
        pool: 
          vmImage: 'ubuntu-latest'
        steps:
          - bash: echo $(group1.var_key)

   - stage: dev
    jobs:
      - job: DevConditions
        pool: 
          vmImage: 'ubuntu-latest'
        steps:
          - bash: echo $(group2.var_key)

这给了我一个错误,请问有正确的方法吗?

1 个答案:

答案 0 :(得分:5)

将来,在询问有关YAML错误的问题之前,请先参考YAML schema documentation

对该文档的快速查看显示:

variables:
  group: group1, group2, group3

语法不正确。

要包含变量组,请切换到以下序列语法:

 variables:
 - name: string  # name of a variable   value: string # value of the variable
 - group: string # name of a variable group You can repeat name/value pairs and group.

您还可以包括模板中的变量。

从中推断

variables:
- group: group1
- group: group2
- group: group3

在编写YAML配置文档时,遵循架构至关重要。它对空格敏感,因此请确保缩进正确。我建议使用安装了Azure Pipelines YAML扩展的VS Code之类的编辑器来帮助捕获此类问题。

除此之外,要仅在阶段中使用变量组,请在stage块中引用它:

stages: 
- stage: Foo
  variables:
  - group: DEVgroup

再次,阅读架构文档。这一切都有据可查。