参数名称中的 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 }}
然后你会得到:
我有一个带有参数的 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 }}
然后你会得到: