我可以从msbuild脚本中取消TeamCity生成吗?

我可以从msbuild脚本中取消TeamCity生成吗?,msbuild,teamcity,Msbuild,Teamcity,TeamCity允许我使用##TeamCity交互从MsBuild脚本返回报告。我可以用它来告诉TeamCity构建失败了,或者确实成功了,但是我想告诉它取消构建。有人知道这样做的方法吗 我可以用这个通知TeamCity失败 <Message Text="##teamcity[buildStatus status='FAILURE']" Condition="Something==SomeCondition" /> 我很想这样做 <Message Text="##team

TeamCity允许我使用##TeamCity交互从MsBuild脚本返回报告。我可以用它来告诉TeamCity构建失败了,或者确实成功了,但是我想告诉它取消构建。有人知道这样做的方法吗

我可以用这个通知TeamCity失败

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

我很想这样做

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

我已经试过了,但到目前为止什么也没试过

编辑:


因此,这项功能似乎不可用,尽管可以使用取消生成。还有一种方法用于取消TC网站的生成。

您是否可以不使用,这将导致生成的执行停止。

您可以使用此后更改的未记录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帖子可以告诉你如何

“guest=1”表示我正在使用guest帐户,对于要取消的项目,它至少需要“停止构建/从队列中删除”。

由于Teamcity 8.1()可以通过REST API取消构建

取自9.x,取消当前正在运行的构建

curl -v -u user:password --request POST "http://teamcity:8111/app/rest/builds/<buildLocator>" --data "<buildCancelRequest comment='' readdIntoQueue='false' />" --header "Content-Type: application/xml"
curl-v-u用户:密码--请求发布”http://teamcity:8111/app/rest/builds/--data”“--header”内容类型:应用程序/xml
根据JetBrains和,由于TeamCity 2019.1 EAP 1可以使用服务消息停止构建,如下所示:

##teamcity[buildStop comment='canceling comment' readdToQueue='true']

是的,我目前使用它来停止构建,但我们希望TC内的行为与点击取消按钮相同。请参阅我对TeamCity 2019.1的回答