如何在TeamCity Build Job执行中途退出,跳过后续构建步骤
在TeamCity 2020中中途终止构建任务的两种方案
方案1:使用TeamCity服务消息主动终止构建
TeamCity支持通过输出特定的服务消息直接触发构建停止,无需依赖后续步骤的条件判断。在步骤2的命令行中,当检测到目标输出时,输出对应消息即可立即终止整个构建,后续步骤3-10不会执行:
Windows Cmd示例
假设你需要检查target_command.exe的输出是否包含"需终止的关键词",代码如下:
:: 执行目标命令并检查输出 target_command.exe | findstr "需终止的关键词" :: 如果找到关键词(errorlevel为0),发送停止消息并退出步骤 if %errorlevel% equ 0 ( echo ##teamcity[buildStop status='FAILURE' comment='检测到触发条件,终止构建'] exit /b 1 )
Linux/Bash示例
# 执行目标命令并检查输出 if target_command | grep -q "需终止的关键词"; then # 发送TeamCity服务消息终止构建 echo "##teamcity[buildStop status='FAILURE' comment='检测到触发条件,终止构建']" # 退出当前步骤并标记失败 exit 1 fi
注:
status参数可选SUCCESS或FAILURE,根据需求选择;comment可自定义终止原因,方便后续排查。
方案2:通过步骤失败策略终止构建
- 进入步骤2的配置页面,找到**执行失败策略(Execution failure policy)**选项,选择
Stop build。 - 在步骤2的命令行中,当满足终止条件时,返回非0退出码:
- Windows Cmd:
exit /b 1 - Linux/Bash:
exit 1
- Windows Cmd:
示例(Bash):
# 执行目标命令 target_command # 根据命令返回值判断是否终止 if [ $? -eq 0 ]; then # 满足条件,返回非0退出码触发构建停止 exit 1 fi
这种方式依赖步骤的失败策略配置,当步骤返回非0时,TeamCity会直接停止整个构建流程。
内容的提问来源于stack exchange,提问作者Rajesh
相关产品推荐
相关产品推荐

