如何自定义VSTS Build definitions构建完成摘要?
在Azure DevOps(原VSTS)构建摘要中添加自定义内容的方法
当然有办法!在Azure DevOps(原VSTS)里,你可以通过几种方式自定义构建摘要,下面是最常用的几个方案:
1. 使用社区/官方扩展(最直观的可视化方案)
Azure DevOps Marketplace上有不少专门用于自定义构建摘要的扩展,比如Custom Build Summary这类工具。安装扩展后,你可以直接在构建定义中添加对应的任务,通过可视化界面配置要展示的内容——支持纯文本、Markdown格式的文本、链接,甚至简单的HTML片段(注意合规性,避免不安全内容)。
这类扩展的优势是操作简单,不需要写代码,适合快速实现自定义摘要需求。
2. 用原生Logging Commands(无插件轻量方案)
如果你不想依赖第三方扩展,Azure DevOps原生支持通过Logging Commands向构建摘要添加自定义内容。核心思路是在构建任务中生成一个包含自定义内容的文件(比如Markdown格式),然后用命令将其作为附件上传到摘要中。
举个PowerShell任务的例子:
# 生成自定义摘要内容,这里可以结合构建变量动态生成 $customSummary = @" ### 本次构建自定义信息 - 构建编号:$env:BUILD_BUILDNUMBER - 代码分支:$env:BUILD_SOURCEBRANCHNAME - 已完成的测试用例数:120 - 测试通过率:98% "@ # 将内容保存到临时文件 $summaryFilePath = Join-Path $env:AGENT_TEMPDIRECTORY "build-custom-summary.md" Set-Content -Path $summaryFilePath -Value $customSummary -Encoding UTF8 # 上传到构建摘要 Write-Host "##vso[task.addattachment type=Distributedtask.Core.Summary;name=我的自定义构建摘要;]$summaryFilePath"
执行这个任务后,你的构建摘要页就会多出一个名为「我的自定义构建摘要」的板块,显示你定义的内容。
如果是Bash任务,逻辑类似:
# 生成摘要内容 cat > $AGENT_TEMPDIRECTORY/custom-summary.md << EOF ### 自定义构建摘要 - 构建版本:$BUILD_BUILDNUMBER - 触发方式:$BUILD_REASON EOF # 上传到摘要 echo "##vso[task.addattachment type=Distributedtask.Core.Summary;name=Bash自定义摘要;]$AGENT_TEMPDIRECTORY/custom-summary.md"
3. 通过Azure DevOps REST API(进阶自动化方案)
如果你的自定义内容需要从外部系统获取(比如测试报告、部署状态),可以在构建完成后调用Azure DevOps的REST API,将自定义内容添加为构建的注释或自定义数据。
比如调用Builds - Update API,在构建的customAttributes中添加自定义字段,或者直接添加构建注释。不过这个方案需要编写脚本调用API,适合复杂的自动化场景。
注意事项
- 如果你使用HTML格式的内容,要确保内容符合Azure DevOps的安全规范,避免注入攻击;
- Logging Commands的方式支持Markdown语法,所以用Markdown写内容会让摘要排版更美观;
- 扩展方案通常会提供更多可视化选项,比如图表、进度条等,适合需要更丰富展示效果的场景。
内容的提问来源于stack exchange,提问作者Ramakrishna Yelduti
相关产品推荐
相关产品推荐

