在 Azure devops yaml 管道模板中使用 if else 条件

Using if else conditions within a Azure devops yaml pipeline template

本质上,我试图在 yaml 模板中使用 if else 逻辑而不是调用者管道。

我有以下两条管道 azure-caller.yml 和 template.yaml

azure-caller.yml

parameters:
  - name: test
    displayName: 'select true or false' 
    values:
      - true
      - false
  

variables:
- name: test-true
  ${{ if eq(parameters.test, 'true') }}:
      value: false
  ${{ elseif eq(parameters.test, 'false') }}:
      value: true

stages:
- template: job-templates/template.yml
  parameters:
    testrue: $(test-true)

template.yml

parameters:
  testrue: test_true
  
stages:
  - stage: A
    jobs:
    - job: JA
      steps:
      - script: |
          echo "Reverted value is" ${{ parameters.testrue }}
          
        name: DetermineResult

如何移动 template.yml 中的 if else 逻辑而不是 azure-caller.yml?您的意见将有所帮助。谢谢

下面的管道应该有一个限制,即模板中变量 test-true 的范围将仅限于阶段:A

azure-caller.yml

parameters:
  - name: test
    displayName: 'select true or false' 
    values:
      - true
      - false

stages:
- template: job-templates/template.yml
  parameters:
    testrue: ${{ parameters.test }}

template.yml

parameters:
  testrue: default

stages:
  - stage: A
    variables:
    - name: test-true
      ${{ if eq(parameters.testrue, 'true') }}:
        value: NewVauleForTrueParam
      ${{ elseif eq(parameters.testrue, 'false') }}:
        value: NewVauleForFalseParam
    jobs:
    - job: JA
      steps:
      - script: |
          echo "Echo value is" $(test-true)

结果