【问题标题】:How to display build error messages in TeamCity when using cake build scripts使用蛋糕构建脚本时如何在 TeamCity 中显示构建错误消息
【发布时间】:2016-08-14 06:37:13
【问题描述】:

拥有一个使用 Teamcity 和 Octopus 的 CI 管道部署和构建用 Cake 编写的脚本,我希望能够显示构建脚本生成的错误消息。

现在显示的消息是:

 Exit code 1 (new)

为了能够看到真正的错误消息,必须查看构建日志并对其进行解析。

所以,即使在使用构建脚本时,我也希望能够在 overview 页面中显示 构建结果 和错误列表,如下图所示: 我知道 Cake 提供了与 TeamCity 集成的支持,但 documentation 和示例并不是那么简单。

谁能提供一些关于这个主题的有用信息?

【问题讨论】:

  • 如果我们可以做些什么来改进文档,那么我们很乐意听取您的任何反馈。
  • 在看到其他用途后,我意识到问题不是与 TeamCity 的集成,而是 MSBuild 任务失败而没有报告正确的消息(为什么任务失败)。所以我的问题是我无法收集构建信息并使用该消息使构建任务失败。

标签: error-handling continuous-integration teamcity cakebuild


【解决方案1】:

Cake 实现了一个方法可以write a build problem

TeamCityProvider​.BuildProblem(string, ​string)

查看source code for this provider,我可以确定这将构建一个字符串以输出符合TeamCity documentation中指定的构建脚本交互,具体报告构建问题

##teamcity[buildProblem description='<description>' identity='<identity>']

通过调用 BuildProblem("Some message", "Some identity") 这将输出

##teamcity[buildProblem description='Some Message' identity='Some identity']

然后,TeamCity 应该使构建失败并根据文档显示消息;

要直接从构建脚本中失败构建,已报告构建问题。构建问题出现在构建结果页面上,并且还会影响构建状态文本。

您需要编辑蛋糕构建脚本以正确捕获异常并调用上述方法,以便正确写入输出流。

我可以使用 PowerShell 脚本复制此行为,将 buildProblem 消息写入输出流

这将在概览页面的构建结果中显示消息

希望对你有帮助

【讨论】:

  • 在我的情况下,团队城市构建失败,它将错误显示为构建日志中的信息摘要,而不是概述结果页面。
  • 如果您使用的是用 cake 编写的构建脚本,那么您需要捕获异常,然后调用此方法传递异常消息。您有权编辑蛋糕构建脚本吗?您需要这方面的帮助吗?
  • 是的,你是对的。我能够看到蛋糕向坚韧报告错误的警告,但构建任务因该错误而失败的事实。所以问题是我应该解析构建日志并向构建环境发出错误信号。我在对我的问题的评论中标记了这一点。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-02-09
  • 2018-02-14
相关资源
最近更新 更多