参数名称中的 Azure Pipelines YAML 参数(动态参数名称)

Azure Pipelines YAML parameter inside parameter name (dynamic parameter name)

我有一个带有参数的 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}} }} 

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

是否有办法或解决方法?

你需要在这里使用两个循环来检查你是否找到你的钥匙。

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

然后你会得到: