You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure DevOps YAML同时配置变量组与自定义变量为何报错

报错原因

你遇到的共存报错是两个问题共同导致的:

  • 核心原因是Azure DevOps Pipelines的variables配置节点不支持两种YAML结构混用:一种是带-前缀的序列/列表格式,专门用来引用变量组、变量模板;另一种是直接写变量名: 值的键值对映射格式,用来定义普通内联变量。两种格式在同一个variables节点下只能选一种用,你原来引用docker-settings变量组用的是序列格式,下一行直接写isMaster: xxx属于映射格式,YAML解析时会直接报类型不匹配错误。
  • 次要原因是你写的isMaster条件表达式本身语法残缺,末尾缺少闭合的单引号、右括号,也没有写全要匹配的分支完整路径,完整的主分支判断表达式应该是$[eq(variables['Build.SourceBranch'], 'refs/heads/master')]。
正确写法

如果需要同时引用变量组和自定义条件变量,必须把所有配置都统一成序列格式,自定义内联变量要按照name+value的结构作为列表项传入,修正后的可运行配置如下:

variables:
  - group: docker-settings
  - name: isMaster
    value: $[eq(variables['Build.SourceBranch'], 'refs/heads/master')]

补充说明:你之前单独删除变量组配置时,整个variables块就全是键值对映射格式,符合语法要求所以能正常运行;单独删除isMaster配置时,整个variables块全是序列格式的变量组引用,也符合语法要求,所以两种单留的场景都不会触发报错。

内容的提问来源于stack exchange,提问作者itye1970

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.02 22:01:25