Azure Devops:如何使用if语句设置组变量

时间:2020-04-01 15:00:14

标签: azure azure-devops yaml azure-pipelines

我正在尝试根据管道中存在的一个变量设置变量组。 yaml看起来像这样:

enter image description here

但是在运行管道时出现以下错误:

enter image description here

如果我删除“-组:QA” “-组:PROD” ,则管道运行没有任何问题。我在做什么错了?

2 个答案:

答案 0 :(得分:4)

这是稍微不同的解决方案,但是您可以实现您的目标-这就是我了解变量组的条件选择。

您可以使用运行时参数:

parameters:
- name: environment
  displayName: Environment
  type: string
  default: QA
  values:
  - QA
  - PROD

stages:
- stage:
  displayName: 'Build and Restore'
  variables:
  - group: ${{ parameters.environment }}
  jobs:
    - job:
      steps:
      - script: echo $(name)

与运行构建相比,您可以选择环境:

Running a build

注意:我已经在两个组中定义了两个变量组QA和P​​ROD,并具有变量名称。

答案 1 :(得分:2)

尝试以下模式:

variables:
  isProd: true

stages:
- stage: Test
  displayName: Build and restore
  variables:
  - ${{ if eq(variables['isProd'], 'false') }}:
    - group: QA
  - ${{ if eq(variables['isProd'], 'true') }}:
    - group: PROD
  jobs:
  - job: A
    steps:
    - bash: echo $(groupname)

enter image description here

注意: 在定义以上YAML密码时,您可能会收到一些红色警告。忽略该混乱的警告,然后继续运行。

相关问题