我想一步一步停止其余的构建步骤。
official document和so answer的指导如下:
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版本均已测试。
答案 0 :(得分:1)
在Microsoft生态系统中,Exit Code 1
的含义是:error
,而不是true
。
您只需使用FAILURE
将状态从SUCCESS
设置为message queue
,然后通过执行{{1}将其设置回FAILURE
}。
如果您将exit 1
切换为exit 1
,它将变成绿色。
编辑:
假设您的构建配置中有x(A,B(...),F)exit 0
。
您可以在构建步骤build steps
的最后定义exit code 1
。
仅当上一个构建步骤A
成功时,才能定义构建步骤B
。 (A
)-然后,如果退出代码为1,它将无法运行。
您可以定义构建步骤Only if build status is successful
来运行F
。
然后,此构建步骤将发送到消息队列Even if some of previous steps failed
因此,您的构建将被标记为成功,但是将不会执行构建步骤echo "##teamcity[buildStatus status='SUCCESS' text='Automation disabled']"
。