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

如何在Azure构建管道中创建并触发Azure发布,无需等待构建完成?

实现方案:在Azure构建管道中异步触发Azure发布

可以实现,无需拆分维护两条管道,核心是在构建流程中插入异步触发发布的任务,让发布与构建并行推进,部署完成后直接执行测试套件。具体操作如下:

  • 核心逻辑:在构建管道中添加任务,通过Azure CLI或REST API触发发布管道,并设置为异步模式——即触发后立即返回,不等待发布完成,构建管道继续执行后续步骤的同时,发布管道启动部署,部署完成后直接运行测试。

  • 具体步骤:

    1. 配置权限:确保项目的构建服务账号(Project Build Service)拥有目标发布管道的「编辑、触发」权限,以及对应部署环境的权限。
    2. 用Azure CLI异步触发发布:
      在构建管道中添加Azure CLI任务,选择匹配的代理池,输入以下命令:
      az pipelines release create --definition-name "你的发布管道名称" --description "由构建[$(Build.BuildNumber)]触发" --is-draft false --wait false
      
      关键参数说明:--wait false 会让命令触发发布后立即返回,不阻塞构建流程,实现异步启动发布。
    3. 用REST API触发(更灵活):
      若需要自定义更多参数,可添加PowerShell任务调用Azure DevOps REST API:
      $orgUrl = "$(System.CollectionUri)"
      $projectName = "$(System.TeamProject)"
      $releaseDefId = "你的发布管道ID"
      $pat = "$(System.AccessToken)"
      
      $headers = @{
          "Authorization" = "Bearer $pat"
          "Content-Type" = "application/json"
      }
      
      $body = @{
          definitionId = $releaseDefId
          description = "由构建[$(Build.BuildNumber)]触发"
          isDraft = $false
      } | ConvertTo-Json
      
      Invoke-RestMethod -Uri "$orgUrl/$projectName/_apis/release/releases?api-version=7.1-preview.8" -Method Post -Headers $headers -Body $body -SkipHttpErrorCheck
      
      该调用默认异步执行,构建管道会继续推进,无需等待发布结果。
  • 测试套件的执行:
    在发布管道的部署完成阶段(比如测试环境部署成功后),直接添加测试任务(如VSTest、JUnit等)运行目标测试套件,实现部署后自动触发测试,无需额外维护测试管道。

  • 注意事项:

    • 确保构建产物已发布到Artifact仓库,发布管道的Artifact源需关联当前构建(可设置为「特定构建」,引用$(Build.BuildId));
    • 若需追踪发布状态,可在构建管道后续任务中添加查询逻辑,但无需阻塞构建流程。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 23:15:42