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

如何将Azure Pipeline生成的.apk制品发送至Microsoft Teams频道?

Azure Pipelines 构建APK发布到Microsoft Teams频道配置方案

注意:Teams传入Webhook单条消息附件大小限制为1MB左右,APK体积普遍远大于该阈值,因此采用「发布管道制品+Teams消息卡片带下载入口」的方案稳定性最高,完全满足测试团队直接获取安装包的需求。

前置准备

  • 打开目标Teams频道,点击右上角更多选项(三个点标识),选择「连接器」,搜索找到「传入Webhook」完成添加,给Webhook设置名称(比如Android构建通知),可自定义上传头像,创建完成后复制生成的Webhook URL备用。
  • 确认现有Azure生成管道可正常编译输出.apk文件,明确APK在构建工作目录中的生成路径。

配置步骤

  1. 安全存储Webhook地址
    进入Azure管道编辑页面,打开「变量」面板新建变量,变量名设置为TeamsWebhookUrl,值填入之前复制的Teams Webhook地址,勾选「将此值保密」选项后保存,避免Webhook地址明文泄露。

  2. 添加制品发布任务
    在管道的Android构建步骤之后,添加「发布构建制品」任务,将生成的APK发布到Azure Pipelines的容器存储中,YAML配置示例如下:

    - task: PublishBuildArtifacts@1
      inputs:
        PathtoPublish: '$(Build.ArtifactStagingDirectory)/app-release.apk' # 替换为当前项目实际的APK生成路径
        ArtifactName: 'Android_Test_APK'
        publishLocation: 'Container'
    

    如果使用可视化经典管道,直接在任务列表搜索「发布构建 artifacts」,按界面提示填写APK路径、制品名称即可。该任务执行后,会生成当前构建的固定制品访问地址,项目内有权限的成员可直接访问下载。

  3. 添加Teams消息发送任务
    在制品发布任务之后,添加PowerShell执行任务,通过脚本构造Teams消息卡片并调用之前配置的Webhook发送消息,YAML配置示例如下:

    - task: PowerShell@2
      inputs:
        targetType: 'inline'
        script: |
          $downloadUri = "$(System.TeamFoundationCollectionUri)$(System.TeamProject)/_build/results?buildId=$(Build.BuildId)&view=artifacts&pathAsName=false&type=publishedArtifacts"
          $cardContent = @{
            "@type" = "MessageCard"
            "@context" = "schema.org/extensions"
            "summary" = "Android测试包构建完成"
            "themeColor" = "2EB886"
            "sections" = @(
              @{
                "activityTitle" = "✅ 构建完成:$(Build.DefinitionName) #$(Build.BuildNumber)"
                "facts" = @(
                  @{"name" = "构建分支"; "value" = "$(Build.SourceBranchName)"},
                  @{"name" = "提交备注"; "value" = "$(Build.SourceVersionMessage)"},
                  @{"name" = "触发人"; "value" = "$(Build.RequestedFor)"},
                  @{"name" = "构建时间"; "value" = "$(Build.BuildStartTime)"}
                )
                "markdown" = $true
              }
            )
            "potentialAction" = @(
              @{
                "@type" = "OpenUri"
                "name" = "下载APK测试包"
                "targets" = @(@{"os" = "default"; "uri" = $downloadUri})
              },
              @{
                "@type" = "OpenUri"
                "name" = "查看构建日志"
                "targets" = @(@{"os" = "default"; "uri" = "$(Build.BuildUri)"})
              }
            )
          } | ConvertTo-Json -Depth 10
          Invoke-RestMethod -Uri $(TeamsWebhookUrl) -Method Post -Body $cardContent -ContentType 'application/json'
    

    可视化经典管道操作同理,添加PowerShell任务后选择「内联脚本」模式,把上述脚本内容粘贴到输入框即可。

效果验证与可选优化

  • 手动触发一次管道构建,构建成功后目标Teams频道会收到结构化消息卡片,卡片上直接带APK下载按钮,测试人员点击即可跳转到制品页获取安装包,不需要手动翻找构建记录。
  • 如果测试团队没有Azure DevOps项目权限,可以在项目设置中开启制品匿名访问,或者将APK上传到内部共享存储后,把公开下载链接替换到脚本里的$downloadUri字段即可。
  • 如果不需要自定义卡片样式,也可以直接在Teams频道添加「Azure Pipelines」连接器,绑定对应的生成管道后,开启构建成功通知,不需要手写脚本即可自动推送带制品入口的消息,缺点是卡片内容自定义程度较低。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.03 05:01:00