TeamCity构建状态服务消息未成功

3
我希望您能在某个步骤停止剩余的构建步骤。 官方文档Stack Overflow答案都指导按以下方式操作;
echo "##teamcity[buildStatus status='SUCCESS' text='Automation disabled']"

但是为了让构建在某一步停止,我认为应该在最后放置exit 1。但这个退出代码会因为失败条件而产生红色的“失败”结果;即“其中一个构建步骤因错误(例如非零退出代码)而退出”。

我的尝试如下:

echo "##teamcity[buildStatus status='SUCCESS' text='Automation disabled']"
exit 1

如何让它显示“绿色成功”结果?
文档说:“您还可以将失败的构建状态更改为成功”,但效果不如预期。
测试了2017.2.3和2018.1.4两个版本。
1个回答

1
在 Microsoft 生态系统中,Exit Code 1 的含义是:错误而不是 true
您只需使用 消息队列 将状态从 FAILURE(可能)设置为 SUCCESS,然后通过执行 exit 1 将其重新设置为 FAILURE。 如果将您的 exit 1 更改为 exit 0,则应该会变成绿色。
编辑: 假设您的构建配置中有 x (A、B (...)、F) 个 构建步骤
您可以在构建步骤 A 结束时定义 exit code 1
仅当前一个构建步骤 A 成功时,才能定义构建步骤 B。(仅当构建状态成功时)- 然后,如果退出代码为 1,则不会运行。
你可以定义构建步骤F,以便在即使之前的某些步骤失败的情况下运行。此构建步骤将发送消息到消息队列echo "##teamcity[buildStatus status='SUCCESS' text='Automation disabled']"
因此,您的构建将被标记为成功,但不会执行构建步骤B

感谢您的回答。exit 0确实产生了绿色结果,但我的意图是跳过其余的构建步骤。exit 0会在此之后运行。 - Youngjae
我已经改进了我的答案,描述了如何跳过构建步骤。 - Didier Aupest

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接