2013-04-05 84 views
3

是否可以通過REST API取消當前正在運行的構建?通過REST調用停止TeamCity構建

我有一個集成,它獲取當前正在運行的構建,並且如果它們失敗,我想終止給定類型的構建。我知道如何列出給定類型的失敗構建,然後如何通過停止命令?

回答

3

也許無法與REST API,但如果你看看here(朝向註釋部分的底部)有一個「無證」功能,讓你做到這一點通過HTTP。

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 

「客人= 1」表示我使用來賓帳戶,其在最低限度需要「停止建立/從隊列中刪除」爲項目你要取消。

「comment = ...」可以設置爲描述您取消的原因。

0

由於TeamCity的8.1,可以使用REST API停止編譯:

curl -v -u user:password --request POST "http://localhost:7000/app/rest/buildQueue/<buildLocator>" --data "<buildCancelRequest comment='' readdIntoQueue='true' />" --header "Content-Type: application/xml"