TeamCity的自定义脚本中的exitCode不正确

时间:2014-01-09 10:07:06

标签: scala teamcity sbt

我们有一个Scala项目,我们使用SBT作为其构建工具。 我们的CI工具是TeamCity,我们使用命令行自定义脚本选项和以下命令构建项目:

call %system.SBT_HOME%\bin\sbt clean package

构建成功时构建过程正常,但是,当编译失败时 - TeamCity认为脚本退出时使用exitCode 0而不是预期的1,这会导致TeamCity构建成功,尽管编译失败。

当我们在本地cmd上运行相同的命令时,我们看到errorLevel为1。

构建日志的相关部分:

[11:33:44][Step 1/3] [error] trait ConfigurationDomain JsonSupport extends CommonFormats {
[11:33:44][Step 1/3] [error]                           ^
[11:33:44][Step 1/3] [error] one error found
[11:33:45][Step 1/3] [error] (compile:compile) Compilation failed
[11:33:45][Step 1/3] [error] Total time: 12 s, completed Jan 9, 2014 11:33:45 AM
[11:33:45][Step 1/3] Process exited with code 0

我们如何让TeamCity认识到构建失败?

2 个答案:

答案 0 :(得分:0)

尝试使用以下方式显式退出:

call %system.SBT_HOME%\bin\sbt clean package
echo the exit code is %errorlevel%
exit /b

答案 1 :(得分:0)

如果您无法让进程输出非零退出代码,那么您可以根据构建日志中的特定文本使用构建失败条件。有关文档,请参阅this页面,但实质上,如果构建日志中找到文本error found,则可以使构建失败。