Azure DevOps YAML模板报Unexpected value 'steps' 如何配置为jobs运行
报错原因
两个报错均是模板定义不符合Azure DevOps YAML规范导致:
- 主YAML的
jobs字段引用的模板,必须返回job集合,你当前模板根节点写的是steps,结构不匹配,因此报Unexpected value 'steps' - 模板存在语法错误:
-job短横线和job之间缺少空格,且job结构下不能直接嵌套循环,缩进逻辑错误导致报mapping values are not allowed in this context
具体修改方案
调整status-template.yml模板结构
因为你是在jobs层级引用模板,模板根节点必须为jobs,同时将循环逻辑放到jobs层级,每个poll值生成一个独立job:
parameters: - name: "polls" type: object default: [] # 改为空数组,和传入的参数类型匹配 jobs: - ${{ each poll in parameters.polls }}: - job: polling_job_${{ poll }} # 每个job添加唯一标识,避免重名报错 steps: - task: PowerShell@2 inputs: targetType: 'inline' script: | $global:testsCompleted = 0 # 可直接通过 ${{ poll }} 调用当前循环的poll值
主YAML无需修改,保持原有引用逻辑即可。修改后模板会根据传入的polls数组自动生成对应数量的独立job,完全匹配主YAML的jobs字段要求,报错将消失。
内容的提问来源于stack exchange,提问作者user17490049
相关产品推荐
相关产品推荐

