TFS 写入字符串消息以构建摘要

TFS write string message to build summary

我想将字符串消息写入 TFS 构建摘要。我有一个带有变量

的 Powershell 任务
   $output = $(Build.SourcesDirectory)\scripts\SCRIPT_NAME.ps1

   $output

持有

   =====
   Numb. of files for patch in:
   Win32 = 2
   Win64 = 123
   ---
   Numb. of original files:
   Win32 = 0
   Win64 = 12
   =====

那个scheme就是一个完整的消息,现在我只想把它显示在下面图片指向的地方或者任何其他部分,只要它在"Summary" 我查看了 Stack question but it answers how to display hyperlink to file. I want to specifically display string not a link to file that holds what I want to print. Additionally I referred to Microsoft docs,但没有找到我要找的内容

Partial/temporary解决方案

由于这是目前最接近 100% 正确回答问题的解决方案,因此这是公认的答案。当更好的解决方案被实施并被某人指出时,问题将被更新


目前我需要快速解决方案,我使用 task.logissue type=warning 显示 $output 的内容。由于仅使用 Write-Host "##vso[task.logissue type=warning;]$output" 将在一行中显示 $output 的内容,我将其拆分为新行并遍历数组

    $output = $output.Split("`n`r")

    foreach($line in $output){ 
            Write-Host "##vso[task.logissue type=warning;]$line" 
    }

产生预期的输出

Edit.: 通过描述的解决方案,我部分回答了我的问题 - 我正在显示 Warning 但我只想显示信息。未标记为错误或警告

简单的方法就是使用 记录命令 作为您共享的 link 建议:

##vso[task.uploadsummary]local file path

Upload and attach summary markdown to current timeline record. This summary shall be added to the build/release summary and not available for download with logs.

这个不会在summary中生成hyperlink,它会在build Summary page的共享文件中直接列出text/content。你只需要将输出放在一个文件中,然后使用上面的命令行。

例如:

  1. 添加 PowerShell 任务

脚本:

Write-Host "##vso[task.uploadsummary]c:\testsummary.md"


此外,您还可以创建自己的扩展以在我的 Azure DevOps 构建摘要页面中显示图形内容。 (太复杂,不推荐)

例如通过您的扩展在构建结果中添加自定义部分,通过这种方式,您可以在该自定义部分中添加html 测试结果报告。 有关于构建结果扩展的示例:vsts-extension-samples

更多关于如何构建扩展的信息,您可以参考这篇文章

Create your first extension for Visual Studio Team Services

一个扩展供您参考Publish HTML Artifact


更新

在 Markdown 格式的 md 文件中,您可以使用 </br> 换行。以散列字符 # 开始一行以设置标题。例如

=====</br>Processed files statistics </br>Numb. of files for patch in: Win32 = 2 [this is single line]</br> #Win64 = 123 [this is header] </br>[here split to lines rest of report]</br>===== 

然后你可以查看正确的报告结果格式: