【问题标题】:incorrect exitCode in custom script of TeamCityTeamCity 的自定义脚本中的 exitCode 不正确
【发布时间】:2014-01-10 03:52:12
【问题描述】:

我们有一个 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 识别构建失败?

【问题讨论】:

标签: scala teamcity sbt


【解决方案1】:

尝试显式退出:

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

【讨论】:

  • 已尝试:打印 0,并以 0 存在。
【解决方案2】:

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

【讨论】:

  • 是的,我做到了。但此选项仅适用于整个构建而不是构建步骤,它仍然是一个可靠的解决方案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-04-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-10-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多