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

Azure Pipeline ManualValidation任务参数传递失败求助

解决ManualValidation@0任务参数传递问题

你遇到的错误核心是:YAML指令(比如each)不能嵌入在字符串内容里,必须让整个字段值是一个完整的表达式。notifyUsers用|定义了多行字符串,里面塞each会触发解析错误,换个方式处理就行。

方案1:直接用join生成多行列表

join函数可以把数组元素用指定分隔符拼接,这里用换行符'\n'就能生成符合要求的多行用户列表,完美适配notifyUsers的格式:

parameters:
  - name: 'emailList'
    type: object
    default:
      - '[muttsMitts]\release_group'  # 带特殊字符的字符串必须加引号
      - 'admin@muttsMitts.com'

jobs:
  - job: manual_approval
    displayName: "Manual Approval"
    pool: server
    timeoutInMinutes: 4320
    steps:
      - task: ManualValidation@0
        timeoutInMinutes: 1440
        inputs:
          onTimeout: reject
          # 用join把数组转成换行分隔的字符串,直接作为notifyUsers的值
          notifyUsers: ${{ join('\n', parameters.emailList) }}
          instructions: 'Please validate the build configuration and resume'

方案2:通过变量中转(如果需要复用列表)

如果要在多个地方用到这个列表,可以先把拼接后的字符串存在变量里,再在任务中引用:

parameters:
  - name: 'emailList'
    type: object
    default:
      - '[muttsMitts]\release_group'
      - 'admin@muttsMitts.com'

jobs:
  - job: manual_approval
    displayName: "Manual Approval"
    pool: server
    timeoutInMinutes: 4320
    variables:
      - name: formattedNotifyUsers
        value: ${{ join('\n', parameters.emailList) }}
    steps:
      - task: ManualValidation@0
        timeoutInMinutes: 1440
        inputs:
          onTimeout: reject
          notifyUsers: $(formattedNotifyUsers)
          instructions: 'Please validate the build configuration and resume'

关键注意点

  • 包含反斜杠、方括号这类特殊字符的组名,必须用单引号/双引号包裹,避免YAML解析错误;
  • join的分隔符用'\n'(注意是单引号),这样才能生成真正的换行,符合notifyUsers多行输入的要求;
  • 不要在字符串块(|开头)里用each指令,Azure DevOps的YAML解析器不支持这种嵌套用法。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 22:52:59