0

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

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

天蓝色调用者.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)

模板.yml

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

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

4

1 回答 1

1

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

天蓝色调用者.yml

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

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

模板.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)

结果

在此处输入图像描述

于 2022-01-12T15:33:23.710 回答