是否可以通过REST API取消当前正在运行的构建?
我有一个集成,它获取当前正在运行的构建,如果它们失败,我想终止给定类型的构建。我知道如何列出给定类型的失败构建,然后如何传递停止命令?
答案 0 :(得分:3)
也许不是使用REST API,但如果你看here(在评论部分的底部),就会有一个'未记录的'功能,可以通过HTTP进行。
答案 1 :(得分: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
“guest = 1”表示我正在使用访客帐户,该帐户至少需要为您要取消的项目“停止构建/从队列中删除”。
“comment = ...”可以设置为描述您取消的原因。
答案 2 :(得分:1)
不完全是您正在寻找的REST调用,但您只需执行HTTP POST即可:
http://teamcity.my.org/viewLog.html?buildTypeId=bt278&buildId=1352480#
其中:
buildTypeId是您项目的ID
buildId是要停止的内部版本号
显然,您只能在构建运行时执行此操作。
答案 3 :(得分: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"