如何在Azure Pipelines YAML中遍历多值的Schemes参数
解决方案
要实现遍历Schemes参数的取值,只需做两处关键修改:
1. 调整Schemes参数定义(支持多选可选,但需遍历多值时必须设置)
原Schemes为单值字符串类型,若要支持选择多个方案并遍历,需开启多选配置:
parameters: - name: Schemes type: string default: 'Staging' values: ['QA', 'Staging'] allowMultipleValues: true # 新增:允许选择多个值
若仅需遍历单个选中值,也可以不添加allowMultipleValues: true,开启后兼容性更强。
2. 修改步骤中的遍历逻辑,直接遍历Schemes参数
将原来遍历variable1的代码,替换为遍历parameters.Schemes:
steps: - ${{ if eq(parameters.test, true) }}: # 现在遍历Schemes参数的取值 - ${{ each scheme in parameters.Schemes }}: - script: echo "Running tests.. ${{ scheme }}"
完整修改后的YAML
parameters: - name: Schemes type: string default: 'Staging' values: ['QA', 'Staging'] allowMultipleValues: true - name: test displayName: Run Tests? type: boolean default: false variables: - name: variable1 value: QA,Staging # 该变量可保留或删除,不再用于遍历逻辑 trigger: - master pool: vmImage: ubuntu-latest steps: - ${{ if eq(parameters.test, true) }}: - ${{ each scheme in parameters.Schemes }}: - script: echo "Running tests.. ${{ scheme }}"
说明
- 开启
allowMultipleValues: true后,触发流水线时可选择一个或多个Schemes值,流水线会为每个选中值执行一次script步骤。 - 若无需多选,仅遍历单个选中值,去掉
allowMultipleValues: true后代码依然有效,此时parameters.Schemes为单个字符串,遍历逻辑会执行一次。
内容的提问来源于stack exchange,提问作者depreston
相关产品推荐
相关产品推荐

