使用Cake Build脚本时如何在TeamCity中显示构建错误消息

4

作为一个使用Teamcity和Octopus Deploy以及Cake编写构建脚本的CI流水线,我希望能够显示由构建脚本生成的错误消息。

现在显示的消息是:

 Exit code 1 (new)

在此输入图像描述 为了能够看到真正的错误信息,必须查看构建日志并解析它。

因此,即使使用构建脚本,我也希望能够在概览页面中显示构建结果和类似下面图片中的错误列表: 在此输入图像描述 我知道Cake提供了与TeamCity集成的支持,但文档和示例并不是那么简单明了。

有人可以提供一些有关这个主题的有用信息吗?


如果有任何可以改进文档的地方,我们非常乐意听取您的反馈意见。 - Gary Ewan Park
在看到其他用途后,我意识到问题不在于与TeamCity的集成,而是MSBuild任务失败而没有报告正确的消息(为什么任务失败)。因此,我的问题在于我无法收集构建信息并使用该消息使构建任务失败。 - MariaMadalina
1个回答

4
Cake实现了一种方法,可以解决构建问题
TeamCityProvider​.BuildProblem(string, ​string)

我可以通过查看此提供程序的源代码来确定,它将构建一个符合TeamCity文档中指定的构建脚本交互的输出字符串,具体报告构建问题。
##teamcity[buildProblem description='<description>' identity='<identity>']

通过调用BuildProblem("一些信息", "一些标识") 将会输出:
##teamcity[buildProblem description='Some Message' identity='Some identity']

TeamCity应该会失败构建,并根据文档显示消息;
要直接从构建脚本中使构建失败,必须报告构建问题。 构建问题会出现在“构建结果”页面上,并影响构建状态文本。
您需要编辑cake构建脚本以正确捕获异常并调用上述方法,这样它将正确地写入输出流。
我可以使用PowerShell脚本复制此行为,将buildProblem消息写入输出流。

enter image description here

这将在概览页面的构建结果中显示相应的信息。

enter image description here

希望这可以帮到你。

在我的情况下,团队城市构建失败了,它在构建日志中显示错误信息摘要,而不是在概述结果页面中显示。 - MariaMadalina
如果您正在使用用Cake编写的构建脚本,那么您需要捕获异常,然后调用此方法并传递异常消息。您可以编辑Cake构建脚本吗?您需要帮助吗? - Matt
是的,你说得对。我能够看到cake将错误报告给tenacity的警告,但问题在于构建任务失败并出现了该错误。因此,问题在于我应该解析构建日志并向构建环境发出错误信号。我在我的问题评论中标记了这一点。 - MariaMadalina

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接