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

如何通过Azure DevOps REST API查询发布管道状态并触发生产构建管道

可行方案:通过Azure DevOps REST API实现发布状态校验与生产阶段触发

核心结论

完全可以实现。你可以在生产构建管道里加个前置校验阶段,调用Azure DevOps REST API查询预生产发布管道的最新运行状态,根据返回结果决定是否启动后续的生产构建流程。

具体实现步骤

1. 在构建管道中添加API查询任务

用PowerShell或Bash任务调用发布管道状态查询API,拿到预生产发布的最新状态:

  • REST API端点示例:
    GET https://vsrm.dev.azure.com/{组织名}/{项目名}/_apis/release/releases?definitionId={预生产发布管道ID}&$top=1&api-version=7.1-preview.8
    
  • 认证直接用管道内置的$(System.AccessToken)当授权头就行,不用额外建服务连接,但要保证管道有读取发布管道的权限。

PowerShell脚本示例:

$orgName = "你的组织名"
$projectName = "你的项目名"
$releaseDefId = "预生产发布管道ID"
$apiVersion = "7.1-preview.8"

$headers = @{
    Authorization = "Bearer $env:SYSTEM_ACCESSTOKEN"
}

$url = "https://vsrm.dev.azure.com/$orgName/$projectName/_apis/release/releases?definitionId=$releaseDefId&`$top=1&api-version=$apiVersion"
$response = Invoke-RestMethod -Uri $url -Headers $headers -Method Get

# 提取最新发布的状态和结果
$latestReleaseStatus = $response.value[0].status
$latestReleaseResult = $response.value[0].result

# 把状态设为管道输出变量,给后面阶段用
Write-Host "##vso[task.setvariable variable=PreProdReleaseStatus;isOutput=true]$latestReleaseStatus"
Write-Host "##vso[task.setvariable variable=PreProdReleaseResult;isOutput=true]$latestReleaseResult"

2. 配置生产阶段的触发条件

在生产构建阶段的触发条件里,引用上面输出的变量,只有预生产发布状态是completed且结果为succeeded时才执行:

  • 在阶段的依赖设置里加条件:
    and(succeeded(), eq(dependencies.前置校验阶段名.outputs['API查询任务名.PreProdReleaseStatus'], 'completed'), eq(dependencies.前置校验阶段名.outputs['API查询任务名.PreProdReleaseResult'], 'succeeded'))
    

3. 权限配置

要确保运行构建管道的服务主体(或项目集合构建服务帐户)有查看发布管道的权限:

  • 进入预生产发布管道的安全设置,添加对应帐户并授予“查看发布”权限。

替代简化方案

如果不需要在生产管道里做校验,也可以直接在预生产发布管道的成功阶段加个任务,调用Azure DevOps的构建触发API直接启动生产构建管道,这样流程更直接,不用在生产管道里查状态。

  • 触发构建的API端点示例:
    POST https://dev.azure.com/{组织名}/{项目名}/_apis/build/builds?api-version=7.1-preview.7
    

内容的提问来源于stack exchange,提问作者Muhammad Saud Siraj

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 00:45:34