如何在Azure DevOps流水线中正确将表达式结果用作布尔值?
问题根因
你编写的or()逻辑表达式未被Azure DevOps YAML编译引擎识别为可执行表达式,直接被作为字符串传递给了模板的布尔类型参数,因此触发类型校验报错。
修正方案
需要将整个逻辑表达式完整包裹在${{ }}模板语法标记内,标记内部的参数引用不需要额外嵌套${{ }},正确配置如下:
parameters: - name: A default: true - name: B default: false stages: - template: bacon.yml@template parameters: booleanParameter: ${{ or(eq(parameters.A, true), eq(parameters.B, true)) }}
可选简化写法
由于你定义的A、B参数本身就是布尔类型,不需要额外和true做等值判断,可进一步简化为:
booleanParameter: ${{ or(parameters.A, parameters.B) }}
内容的提问来源于stack exchange,提问作者Rogerio Schmitt
相关产品推荐
相关产品推荐

