如何从不同的变量组Azure管道访问相同的变量?
我正在使用azure-pipelines.yaml构建多个阶段,每个阶段都有一个相同的变量,即var_key,但每个阶段的值不同。为此,我有不同的azure库组如何从不同的变量组Azure管道访问相同的变量?,azure,azure-devops,yaml,azure-pipelines,azure-pipelines-release-pipeline,Azure,Azure Devops,Yaml,Azure Pipelines,Azure Pipelines Release Pipeline,我正在使用azure-pipelines.yaml构建多个阶段,每个阶段都有一个相同的变量,即var_key,但每个阶段的值不同。为此,我有不同的azure库组 开发组 qa_小组 azure-pipelines.yaml name: $(Date:yyyyMMdd)$(Rev:.r) pr: branches: include: - develop - master trigger: branches: include: - develop
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)
这给了我一个错误,是否有正确的方法来执行此操作。以后,在您询问有关YAML错误的问题之前,请参阅 对该文件的快速回顾表明:
variables:
group: group1, group2, group3
语法不正确
要包括变量组,请切换到此序列语法:
还可以包含模板中的变量
由此推断,
variables:
- group: group1
- group: group2
- group: group3
在编写YAML配置文档时,遵循模式是至关重要的。它对空格敏感,因此请确保缩进正确。我建议在安装了Azure Pipelines YAML扩展的情况下使用VS Code之类的编辑器来帮助捕获类似的问题
除此之外,要仅在阶段中使用变量组,请在阶段
块中引用它:
stages:
- stage: Foo
variables:
- group: DEVgroup
再次阅读模式文档。这些都有很好的文档记录。以后,在您询问有关YAML错误的问题之前,请参阅 对该文件的快速回顾表明:
variables:
group: group1, group2, group3
语法不正确
要包括变量组,请切换到此序列语法:
还可以包含模板中的变量
由此推断,
variables:
- group: group1
- group: group2
- group: group3
在编写YAML配置文档时,遵循模式是至关重要的。它对空格敏感,因此请确保缩进正确。我建议在安装了Azure Pipelines YAML扩展的情况下使用VS Code之类的编辑器来帮助捕获类似的问题
除此之外,要仅在阶段中使用变量组,请在阶段
块中引用它:
stages:
- stage: Foo
variables:
- group: DEVgroup
再次阅读模式文档。这些都有很好的文档记录。这会给您带来什么错误?您需要充分解释问题,包括所有相关细节。您应该在阶段范围内定义变量组,例如:它给您带来了什么错误?您需要充分解释问题,包括所有相关细节。您应该在阶段范围内定义变量组,如:Hi@Daniel感谢回复,我已经阅读了文档,但找不到它,所以我不想使用模板,如果我提供-name:string
#变量名称值:string#变量值
,正如您所说,这就像指定硬编码值一样,但我想从每个阶段的组中获取它,但是我的每个组包含10-15个变量所以我不能添加所有变量,比如名称-值对。@NaveenKumar我不理解这个问题。指定一个组将在指定该组的范围内导入该组中的所有变量。你想要解决的具体问题是什么?您想只使用变量组中的一些变量吗?我想使用所有变量,但问题是两个组中的变量名称相同。我想在一个阶段使用group1变量,在第二阶段使用group2变量。如果我理解正确,您试图说在阶段作用域中使用组,而不是全局。是的,您在要使用这些变量的作用域中指定变量组。文档显示哪些作用域支持导入变量。谢谢@Daniel我会尝试让您知道。嗨@Daniel谢谢您的回复,我已经阅读了文档,但找不到它,所以我不想使用模板,如果我提供-name:string#变量名称值:string#变量值
,正如您所说,这就像指定硬编码值一样,但我想从每个阶段的组中获取它,但是我的每个组包含10-15个变量所以我不能添加所有变量,比如名称-值对。@NaveenKumar我不理解这个问题。指定一个组将在指定该组的范围内导入该组中的所有变量。你想要解决的具体问题是什么?您想只使用变量组中的一些变量吗?我想使用所有变量,但问题是两个组中的变量名称相同。我想在一个阶段使用group1变量,在第二阶段使用group2变量。如果我理解正确,您试图说在阶段作用域中使用组,而不是全局。是的,您在要使用这些变量的作用域中指定变量组。文档显示哪些作用域支持导入变量。谢谢@Daniel,我会尝试让您知道。