我能否在TeamCity日志中将PowerShell输出格式化为可折叠的树状视图?

12

有没有可能在TeamCity构建日志的树状视图中以可折叠的方式呈现powershell输出?

例如,我的构建步骤使用powershell运行程序并发出命令:

write-host " #################  deployment manifest ############################"
ls -r -i *.* | %{ $_.FullName }

它的输出结果是:

[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

我希望在树形视图中折叠日志中的那一块。


1
什么是使其可折叠的标准?我知道PowerShell,但我不知道TeamCity在这方面如何工作(也不知道它到底是什么)。 - Joey
你有没有考虑使用HTML/HTML5创建输出文档?您只需将write-host开始写入文档并编写标记,然后就可以轻松完成了。 - dc5553
你正在使用哪个版本的TeamCity? - Bronumski
1个回答

19

我们使用PowerShell脚本做到这一点,您需要让构建脚本更新TeamCity的构建状态。更具体地说,您需要报告构建进度,告诉TeamCity何时开始和结束工作块。在构建完成后,TeamCity将使用此信息在日志的树形视图上创建节点。

在PowerShell中,请执行以下操作:

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

do work

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

注意,您需要确保起始和结束消息相同,块可以嵌套。您也可以使用块消息代替。我不知道它们的区别是什么,但似乎可以得到相同的结果:

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

do work

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

1
使用TC 8进行工作。progressStart的消息仅在概述页面中显示。blockOpened的消息确实导致TreeView中的折叠。 - Ilia Barahovsky

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接