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

时间:2012-04-27 20:38:35

标签: powershell teamcity

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

例如,我的构建步骤使用了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 个答案:

答案 0 :(得分:18)

是的,我们使用我们的powershell脚本执行此操作,您需要将构建脚本添加到update Teamcity with the build status。更具体地说,您需要report the build progress,它将告诉Teamcity何时发生工作块的开始和结束。构建完成后,Teamcity将使用此信息在日志的树视图上创建节点。

在powershell中执行以下操作:

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

do work

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

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

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

do work

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