首页 > 解决方案 > 参数中的 Azure DevOps 条件

问题描述

请帮助我在步骤模板中的参数中创建条件。

我想根据 variable.Mode 值更改模板中的参数。例如,此代码不起作用:

  - template: ../templates/template1.yml
    parameters:
      ${{ if eq(variables.Mode, 'dev') }}:
        mode: dev
        namespace: dev-namespace
        fqdn: dev.mysite.com
      ${{ if eq(variables.Mode, 'staging') }}:
        mode: staging
        namespace: staging-namespace
        fqdn: staging.mysite.com
        anothervar: value
        yetanothervar: value2

模板使用参数的默认值执行。我可以做些什么来根据 variable.Mode 值设置 vars。

标签: azureazure-devopscontinuous-integration

解决方案


您可以分阶段指定不同的参数值。这是我的示例:

天蓝色管道.yml:

variables:
  Mode: dev

stages:
  - ${{ if eq(variables.Mode, 'dev') }}:
    - template: template.yml
      parameters:
        mode: dev
        namespace: dev-namespace
        fqdn: dev.mysite.com

  - ${{ if eq(variables.Mode, 'staging') }}:
    - template: template.yml  # Template reference
      parameters:
        mode: staging
        namespace: staging-namespace
        fqdn: staging.mysite.com
        anothervar: value
        yetanothervar: value2 

模板.yml:

parameters:
- name: mode  
  default: ''
- name: namespace
  default: ''
- name: fqdn
  default: ''
- name: anothervar 
  default: ''
- name: yetanothervar 
  default: ''

stages:
- stage: 
  jobs:
  - job: 
    steps:
    - script: echo ${{ parameters.mode }}

推荐阅读