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

hiz5n14c  于 2023-08-07  发布在  其他
关注(0)|答案(3)|浏览(84)

我试图根据管道中存在的一个变量来设置变量组。yaml看起来像这样:
x1c 0d1x的数据
但是我在运行管道时得到以下错误:



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

uinbv5nw

uinbv5nw1#

这是稍微不同的解决方案,但你可能会实现你的目标-这是如果我理解变量组的条件选择。
您可以使用运行时参数:

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)

字符串
而不是运行构建,您可以选择您的环境:
x1c 0d1x的数据
注意:我定义了两个变量组QA和PROD,两个组中都有变量名。

camsedfj

camsedfj2#

试试下面的schema:

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)

字符串


的数据

  • 注意:* 当您定义以上YAML scipt时,您可能会收到一些红色警告。忽略这个令人困惑的警告并继续运行它。*
8hhllhi2

8hhllhi23#

我在全局级别做了类似的事情来动态设置变量组。

variables:
    variables:
    - ${{ if startsWith(variables['Build.SourceBranch'], 'refs/heads/release') }}:
      - group: Staging
    - ${{ elseif eq(variables['Build.SourceBranch'], 'refs/heads/main') }}:
      - group: Production
    - ${{ else }}:
      - group: Development

字符串
还在变量组中添加了一个变量,以标识正在设置的变量,然后使用下面的脚本显示:

- script: |
    echo $(VARIABLE_GROUP_NAME)
  displayName: 'Selected Variable Group

相关问题