【问题标题】:Azure Pipelines YAML parameter inside parameter name (dynamic parameter name)参数名称中的 Azure Pipelines YAML 参数(动态参数名称)
【发布时间】:2021-08-23 16:00:49
【问题描述】:

我有一个带参数的 YAML 模板:

  - name: Deploy_Test1
    type: boolean
    default: false
  - name: Tests
    type: object
    default:
      - "Test1"
      - "Test2"

之后我用each迭代Tests

- ${{ each test in parameters.Tests}}:

each 中,我可以通过${{test}} 获得test 值。

我想使用参数Deploy_Test1但是动态的,例如:

echo ${{ parameters.Deploy_${{test}} }} 

在上面的语法中,我得到一个无效的错误。

有没有办法或解决方法?

【问题讨论】:

    标签: azure-devops azure-pipelines azure-pipelines-yaml azure-devops-yaml


    【解决方案1】:

    您需要在这里使用两个循环并检查是否找到了您的密钥。

    parameters:
    - name: Deploy_Test1
      type: boolean
      default: false
    - name: Tests
      type: object
      default:
        - "Test1"
        - "Test2"
    
    trigger: none
    
    pool:
      vmImage: ubuntu-latest
    
    steps:
    - ${{ each test in parameters.Tests}}:
      - ${{ each parameter in parameters }}:
        - ${{ if eq(parameter.key, format('Deploy_{0}', test)) }}:
          - script: echo ${{ parameter.value }}
    

    然后你会得到:

    【讨论】:

      猜你喜欢
      • 2020-05-26
      • 2021-01-08
      • 2019-08-22
      • 2011-11-29
      • 1970-01-01
      • 2015-11-28
      • 2019-09-30
      • 1970-01-01
      • 2016-12-23
      相关资源
      最近更新 更多