参数中的Azure DevOps条件

时间:2020-09-11 14:36:41

标签: azure azure-devops continuous-integration

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

我想根据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值设置变量。

1 个答案:

答案 0 :(得分:1)

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

azure-pipelines.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 

template.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 }}