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

如何在Azure DevOps中按构建号部署Allure报告至Azure WebApp并集成

解决方案:Azure DevOps流水线发布独立Allure报告至WebApp并集成至构建输出

1. 独立发布每个构建的Allure报告(无需FTP)

可以通过自定义部署脚本或Azure CLI任务实现将每个构建的报告上传至WebApp的wwwroot/$(Build.BuildNumber)目录,避免覆盖原有报告:

方案A:使用AzureRmWebAppDeployment@4自定义脚本

先将Allure报告打包,再通过内联脚本解压到指定子目录:

# 1. 打包Allure报告
- task: ArchiveFiles@2
  condition: always()
  inputs:
    rootFolderOrFile: '$(System.DefaultWorkingDirectory)/target/allure-report'
    includeRootFolder: false
    archiveType: 'zip'
    archiveFile: '$(Build.ArtifactStagingDirectory)/allure-report-$(Build.BuildNumber).zip'
    replaceExistingArchive: true

# 2. 部署到WebApp指定子目录
- task: AzureRmWebAppDeployment@4
  condition: always()
  inputs:
    ConnectionType: 'AzureRM'
    azureSubscription: 'xxxxxxxxxxx'
    appType: 'webAppLinux'
    WebAppName: 'xxxxxxxxxxxxx'
    packageForLinux: '$(Build.ArtifactStagingDirectory)/allure-report-$(Build.BuildNumber).zip'
    ScriptType: 'Inline Script'
    InlineScript: |
      # 解压到wwwroot下以构建号命名的目录
      unzip $(Pipeline.Workspace)/allure-report-$(Build.BuildNumber).zip -d /home/site/wwwroot/$(Build.BuildNumber)

方案B:使用Azure CLI任务直接上传

利用az webapp deploy命令指定目标路径,无需打包:

- task: AzureCLI@2
  condition: always()
  inputs:
    azureSubscription: 'xxxxxxxxxxx'
    scriptType: 'bash'
    scriptLocation: 'inlineScript'
    inlineScript: |
      az webapp deploy \
        --name <你的WebApp名称> \
        --resource-group <你的资源组名称> \
        --src-path $(System.DefaultWorkingDirectory)/target/allure-report \
        --target-path /home/site/wwwroot/$(Build.BuildNumber) \
        --type static

两种方案都不需要启用FTP,即可实现每个构建的报告独立存储。

2. 集成WebApp报告至Azure DevOps构建输出界面

通过Azure DevOps的日志命令在构建摘要中添加自定义链接,让报告直接展示在构建输出界面:

- task: CmdLine@2
  condition: always()
  inputs:
    script: |
      # 添加Allure报告链接到构建摘要
      echo "##vso[task.addattachment type=Distributedtask.Core.Summary;name=Allure测试报告;]https://<你的WebApp域名>/$(Build.BuildNumber)/index.html"

执行后,在构建结果的「摘要」标签页会出现一个名为「Allure测试报告」的链接,点击即可跳转到WebApp上对应构建的报告,和其他测试结果的展示方式一致。

额外可选:同时将报告作为构建工件发布,方便离线查看:

- task: PublishBuildArtifacts@1
  condition: always()
  inputs:
    PathtoPublish: '$(System.DefaultWorkingDirectory)/target/allure-report'
    ArtifactName: 'allure-report-$(Build.BuildNumber)'
    publishLocation: 'Container'

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 23:10:24