Azure DevOps YAML流水线中如何在条件中使用each循环变量
解决Azure DevOps流水线each循环中条件判断的变量解析问题
你的代码存在两个关键问题,导致循环变量无法正确解析并报错无法识别的值:'$':
1. 缩进语法错误
原代码中script任务前多了一个破折号,导致它脱离了each循环的作用域,循环变量myitem无法被正确关联到该任务。
2. 条件表达式的语法错误
Azure DevOps的condition中,模板编译阶段的变量(比如each循环的myitem)需要通过模板表达式${{}}包裹整个判断逻辑,而非仅包裹变量部分,否则会触发语法解析错误。
修正后的代码示例
- ${{ each myitem in parameters.itemList }}: - script: echo "Matched for ${{ myitem }}" displayName: "Display item only on condition" condition: ${{ eq(variables['myPipelinevariable'], myitem) }}
说明
- 修正缩进后,
script任务成为each循环的子项,确保myitem变量在该任务的作用域内。 - 将整个
eq判断逻辑放入${{}}中,让Azure DevOps在模板编译阶段就完成myitem变量的替换,避免运行时解析错误。
内容的提问来源于stack exchange,提问作者Codecrasher99
相关产品推荐
相关产品推荐

