如果退出代码不为零,如何让teamcity命令行构建步骤通过?

Isa*_*ger 10 teamcity

我有一个命令行'自定义脚本'构建步骤涉及robocopy.不幸的是,当robocopy成功时,它返回退出代码1而不是更常见的退出代码0.当它执行此操作时,它会失败我的teamcity构建配置.

如果退出代码!= 1仅针对此构建步骤,我如何告诉teamcity使构建失败?可以这样做吗?怎么样以某种方式编辑project-config.xml?

zck*_*zck 18

有两种方法:

  1. 在该Build Configuration中,转到Build Failure Conditions步骤.在以下情况下查找标题Fail build : . 第一个复选框是"构建过程退出代码不为零".确保未检查吸盘.

  2. 运行robocopy时,请检查对robocopy的调用结果.exit 0如果robocopy正常工作,您可以在脚本内部明确显示,或者执行其他操作.如果您需要在其他条件下使构建失败(例如,如果源文件夹不存在首先退出1,然后运行robocopy,然后在robocopy成功时发送消息),这是必需的.

  • 我不能去#1,因为我指望非零退出代码失败了一堆其他步骤.如果robocopy返回0,1或2,我所做的就是传递构建,如果在robocopy调用后使用几条逻辑行返回更高,则失败.我累死了,我没想到那个简单的解决方案:( (2认同)
  • 当我的大脑不工作时,这样可以节省我的屁股,这似乎经常发生. (2认同)

Amn*_*non 6

如果 Team City 自定义脚本步骤中的最后一个命令失败,即退出代码非零,则该步骤失败。因此,您可以在 RoboCopy 命令之后添加一个总是成功的额外命令。

例如:

robocopy ...
echo "robocopy done. this will make the build step succeed always"
Run Code Online (Sandbox Code Playgroud)