是否可以通過REST API取消當前正在運行的構建?通過REST調用停止TeamCity構建
我有一個集成,它獲取當前正在運行的構建,並且如果它們失敗,我想終止給定類型的構建。我知道如何列出給定類型的失敗構建,然後如何通過停止命令?
是否可以通過REST API取消當前正在運行的構建?通過REST調用停止TeamCity構建
我有一個集成,它獲取當前正在運行的構建,並且如果它們失敗,我想終止給定類型的構建。我知道如何列出給定類型的失敗構建,然後如何通過停止命令?
也許無法與REST API,但如果你看看here(朝向註釋部分的底部)有一個「無證」功能,讓你做到這一點通過HTTP。
不完全是REST調用你要找的,但你可以簡單地做一個HTTP POST到:
http://teamcity.my.org/viewLog.html?buildTypeId=bt278&buildId=1352480#
其中:
buildTypeId是項目的ID
buildId是停止的版本號
很明顯,你只能在構建運行的時候這樣做。
您可以使用自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 = ...」可以設置爲描述您取消的原因。
由於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"