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

如何在Azure DevOps中通过YAML触发并传递构建管道参数至另一个管道

实现同项目构建管道的参数化触发

前提准备

确保第二个构建管道已定义对应的version参数,YAML示例如下:

parameters:
- name: version
  displayName: version
  type: string
  default: '1.0.0'

# 后续的构建/部署步骤...

方法一:使用Azure DevOps CLI触发(推荐)

在第一个管道的YAML中添加一个依赖于构建成功的任务,通过CLI调用触发第二个管道并传递参数:

jobs:
- job: BuildJob
  steps:
    # 这里是你原有的构建步骤,比如编译、打包等
    - script: echo "Building version ${{ parameters.version }}"

- job: TriggerSecondPipeline
  dependsOn: BuildJob
  condition: succeeded() # 仅当构建任务成功时执行
  steps:
    - task: AzureCLI@2
      inputs:
        scriptType: bash
        scriptLocation: inlineScript
        inlineScript: |
          # 配置Azure DevOps CLI默认组织和项目
          az devops configure --defaults organization=$(System.TeamFoundationCollectionUri) project=$(System.TeamProject)
          # 触发第二个管道,传递version参数
          az pipeline run --name "第二个管道的名称" --variables version=${{ parameters.version }}
      env:
        # 使用系统自动生成的访问令牌进行认证
        AZURE_DEVOPS_EXT_PAT: $(System.AccessToken)

关键配置说明

  • 将"第二个管道的名称"替换为你实际的管道名称,也可以用--id <管道ID>替代--name,ID更稳定不会因为名称变更失效。
  • $(System.AccessToken)是Azure DevOps提供的内置系统令牌,需要确保项目的Project Build Service账号拥有第二个管道的队列构建权限:
    1. 打开第二个管道的详情页,点击右上角的「设置」
    2. 切换到「安全」标签页
    3. 找到Project Build Service (你的项目名)账号,将「队列构建」权限设置为「允许」

方法二:使用REST API触发

如果更倾向于API调用,可通过InvokeRESTAPI任务调用Azure DevOps的管道触发接口:

- job: TriggerSecondPipeline
  dependsOn: BuildJob
  condition: succeeded()
  steps:
    - task: InvokeRESTAPI@1
      inputs:
        connectionType: connectedServiceName
        # 需要提前创建指向Azure DevOps组织的服务连接
        serviceConnection: "Azure DevOps服务连接名称"
        method: POST
        # 替换<管道ID>为第二个管道的实际ID
        urlSuffix: '_apis/pipelines/<管道ID>/runs?api-version=7.1-preview.1'
        body: |
          {
            "parameters": "{\"version\": \"${{ parameters.version }}\"}"
          }
        headers: |
          {
            "Content-Type": "application/json"
          }

验证方式

运行第一个管道并传入自定义的version值,待第一个管道成功后,查看第二个管道的运行记录,检查其version参数是否与传入的值一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 18:23:35