【发布时间】:2013-02-21 16:06:11
【问题描述】:
我在使用 Teamcity 时遇到问题,即使之前的步骤不成功,它也会继续运行构建步骤。
构建配置的最后一步是部署我的站点,如果我的任何测试失败,我不希望它这样做。
每个构建步骤都设置为仅在之前的所有步骤都成功时才执行。
在“构建失败条件”选项卡中,我检查了 Fail build if 下的以下选项:
-build process exit code is not zero
-at least one test failed
-an out-of-memory or crash is detected (Java only)
这不起作用 - 即使测试失败 TeamCity 部署我的网站,为什么?
我什至尝试添加一个额外的构建失败条件,它将在构建日志中查找特定文本(即“测试运行失败”)。
在概览页面中查看已完成的测试时,您可以看到针对最新版本的错误消息:
“测试运行失败。”文本出现在构建日志中
但它仍然会部署它。
有谁知道如何解决这个问题?看来问题已经存在很久了,here。
显然有一个解决方法:
到目前为止,我们并不认为此功能非常重要,因为 一个明显的解决方法:脚本可以检查必要的条件 并且不要按照 TeamCity 中的配置生成工件。
例如脚本可以将工件从临时目录移动到 在 TeamCity 中指定为发布工件的目录 在完成之前,以防构建操作成功。
但我不清楚具体如何做到这一点,听起来也不是最好的解决方案。任何帮助表示赞赏。
编辑:我还能够解决快照依赖项的问题,我将有一个依赖于测试构建的单独“部署”构建,现在它不运行如果测试失败。
This 对于设置依赖关系很有用。
【问题讨论】:
-
即使您通过变通方法解决了自己的问题,我认为 Adams 的回答更适合您描述的场景。考虑将他的答案标记为已接受。
-
是的,我不确定只是因为我的解决方法更简单,但这是一个很好的答案,我已经重新分配了。