【发布时间】:2019-10-07 01:14:38
【问题描述】:
我在 azure 上有两个环境。它们之间的一个区别仅是来自变量组的环境变量。是否可以为一个管道动态设置组名,而不是设置两个可以映射自己的组变量的管道? 这是我的构建管道的一个示例
trigger:
- master
- develop
jobs:
- job: DefineVariableGroups
steps:
- script: |
if [ $(Build.SourceBranch) = 'refs/heads/master' ]; then
echo "##vso[task.setvariable variable=group_name_variable;isOutput=true]beta_group"
elif [ $(Build.SourceBranch) = 'refs/heads/develop' ]; then
echo "##vso[task.setvariable variable=group_name_variable;isOutput=true]alpha_group"
fi
name: 'DefineVariableGroupsTask'
- script: echo $(DefineVariableGroupsTask.group_name_variable)
name: echovar # that works.
- job: Test
dependsOn: DefineVariableGroups
pool:
vmImage: 'Ubuntu-16.04'
variables:
- group: $[ dependencies.DefineVariableGroups.outputs['DefineVariableGroupsTask.group_name_variable'] ]
# that doesn't work. Error here
steps:
- script: echo $(mode)
displayName: 'test'
【问题讨论】:
-
我不明白这个问题。每个环境都可以有一个与之关联的不同变量组。这是构建管道还是发布管道?
-
抱歉问题不清楚。这是一个构建管道。我想要的是拥有一个与上述类似的构建管道。但我也想让它使用特定的变量组运行,该变量组的计算取决于分支名称
-
@alexche8,您能否分享完整的 YAML 文件,我无法使用当前 YAML 重现您的问题,它总是抛出错误“存在验证错误或警告,..不允许映射值在这种情况下。”对于行
name: 'DefineVariableGroupsTask'?
标签: azure-devops yaml pipeline devops azure-pipelines