2010-11-08 99 views
9

TeamCity允許我使用## teamcity交互來從我的MsBuild腳本報告回來。我可以用它來告訴TeamCity構建失敗,或者確實成功,但是我想告訴它取消構建。有誰知道一種方法來做到這一點?我可以從我的msbuild腳本中取消TeamCity構建嗎?

我可以用它來通知故障的TeamCity ...

<Message Text="##teamcity[buildStatus status='FAILURE']" Condition="Something==SomeCondition" /> 

我很想做到這一點...

<Message Text="##teamcity[buildStatus status='CANCEL']" Condition="Something==SomeCondition" /> 

我已經試過了TeamCity Service Tasks但沒有迄今。

編輯:

這麼看來這個功能不可用,雖然workaround http request可以用來取消生成。還有一個feature request用於取消構建TC網站。如果這是你喜歡的東西(或者想幫助我),那就投票吧!

乾杯

回答

1

你能不能只使用Error task,這一點應引起構建的停止執行。

+3

是的,我現在用它來停止生成,但我們希望中TC的行爲是一樣擊中取消按鈕。 – 2010-11-08 16:21:46

2

您可以使用自it was originally posted以來更改過的未記錄的http請求。您現在需要「operationKind = 1」。我用PowerShell的選手,像這樣:

$buildId = %teamcity.build.id% 
$uri = "http://teamcity/ajax.html?guest=1&comment=Cancelling+build+for+some+reason&submit=Stop&buildId=$buildId&kill&operationKind=1" 
$response = Invoke-WebRequest -UseBasicParsing -Uri $uri 

另一個SO後可以告訴你如何make an http request from MSBuild

「客= 1」是指我使用的來賓帳戶,以最小的需要「停止爲您要取消的項目建立/從隊列中移除「。

2

由於Teamcity 8.1(Source)有可能通過REST API取消構建。

從9.x中Documentation採取取消當前正在運行的建立

curl -v -u user:password --request POST "http://teamcity:8111/app/rest/builds/<buildLocator>" --data "<buildCancelRequest comment='' readdIntoQueue='false' />" --header "Content-Type: application/xml" 
相關問題