我可以将PowerShell输出格式化为TeamCity日志中的可折叠树视图吗?

Jos*_*del 12 powershell teamcity

是否可以格式化PowerShell输出,使其在TeamCity构建日志树视图中呈现为可折叠部分?

例如,我的构建步骤使用了PowerShell运行程序,并发出了一个

write-host " #################  deployment manifest ############################"
ls -r -i *.* | %{ $_.FullName }
Run Code Online (Sandbox Code Playgroud)

输出这个:

[15:28:13] #################  deployment manifest ############################
[15:28:13]\\10.10.10.49\d$\sites\account.foo.net\v32\Bin
[15:28:13]\\10.10.10.49\d$\sites\account.foo.net\v32\contact
[15:28:13]\\10.10.10.49\d$\sites\account.foo.net\v32\Content
[15:28:13]\\10.10.10.49\d$\sites\account.foo.net\v32\controls
[15:28:13]\\10.10.10.49\d$\sites\account.foo.net\v32\error
Run Code Online (Sandbox Code Playgroud)

我希望日志中的大块可以在树视图中折叠.

Bro*_*ski 19

是的,我们使用我们的powershell脚本执行此操作,您需要获取构建脚本以使用构建状态更新Teamcity.更具体地说,您需要报告构建进度,这将告诉Teamcity何时发生工作块的开始和结束.构建完成后,Teamcity将使用此信息在日志的树视图上创建节点.

在powershell中执行以下操作:

write-host "##teamcity[progressStart '<message>']"

do work

write-host "##teamcity[progressFinish '<message>']"
Run Code Online (Sandbox Code Playgroud)

注意您需要确保消息在开始和结束消息中是相同的,可以嵌套块.您也可以使用阻止消息.我不知道确切的区别是什么,但你似乎得到了相同的结果:

write-host "##teamcity[blockOpened name='<blockName>']"

do work

write-host "##teamcity[blockClosed name='<blockName>']"
Run Code Online (Sandbox Code Playgroud)