2012-04-27 5 views
10

È possibile formattare l'output di PowerShell in modo che venga visualizzato come sezione collassabile nel log di costruzione di TeamCity, visualizzazione ad albero?Posso formattare l'output di PowerShell in Vista albero comprimibile nei registri di TeamCity?

Così, per esempio, il mio passaggio di generazione utilizza un corridore PowerShell e rilascia un

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

che Risulterà:

[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 

vorrei quel pezzo di log da pieghevole in la vista ad albero.

+1

Quali sono i criteri che lo rendono possibile? Conosco PowerShell, ma non ho idea di come TeamCity funzioni al riguardo (né ho la minima idea di cosa sia * * *). – Joey

+0

Hai mai pensato di creare un documento html/html5 con l'output? È possibile avviare l'host di scrittura su un documento e scrivere nel markup, quindi voilà. – dc5553

+0

Quale versione di TeamCity stai utilizzando? – Bronumski

risposta

17

Sì, lo facciamo con i nostri script PowerShell, è necessario ottenere lo script di build su update Teamcity with the build status. In particolare è necessario report the build progress che dirà a Teamcity quando si verifica l'inizio e la fine di un blocco di lavoro. Al termine della compilazione, Teamcity utilizzerà queste informazioni per creare nodi nella vista ad albero del registro.

in PowerShell procedere come segue:

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

do work 

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

Nota È necessario fare in modo che il messaggio è lo stesso nel messaggio partenza e di arrivo, i blocchi possono essere nidificati. Puoi anche utilizzare lo block message. Non so esattamente quale sia la differenza ma sembra che tu abbia gli stessi risultati:

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

do work 

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

Lavorare con TC 8. Il messaggio da 'progressStart' è stato mostrato solo nella pagina Panoramica. Il messaggio proveniente da 'blockOpened' ha effettivamente causato il fold nel TreeView –