我遇到了问题Teamcity,即使先前的步骤不成功,它也会继续运行构建步骤.
我的Build配置的最后一步是部署我的站点,如果我的任何测试失败,我不希望它这样做.
每个构建步骤都设置为仅在所有先前步骤都成功时执行.
在Build Failure Conditions选项卡中,我在Fail build下检查了以下选项:
-build process exit code is not zero
-at least one test failed
-an out-of-memory or crash is detected (Java only)
Run Code Online (Sandbox Code Playgroud)
这不起作用 - 即使测试失败,TeamCity部署我的网站,为什么?
我甚至尝试添加一个额外的构建失败条件,它将在构建日志中查找特定文本(即"Test Run Failed.")
在概述页面中查看已完成的测试时,您可以看到针对最新版本的错误消息:
"测试运行失败." 文本出现在构建日志中
但无论如何它仍然会部署它.
有谁知道如何解决这一问题?看来,问题已经运行了很长一段时间,在这里.
显然有一个解决方法:
到目前为止,我们不认为此功能非常重要,因为有一个明显的解决方法:脚本可以检查必要条件,并且不会生成TeamCity中配置的工件.
例如,脚本可以将工件从临时目录移动到TeamCity中指定的目录,作为完成之前的发布工件,以防构建操作成功.
但对于我究竟该如何做到这一点并不清楚,并且听起来也不是最好的解决方案.任何帮助赞赏.
编辑:我还能够解决快照依赖的问题,我将有一个独立的"部署"版本,它依赖于测试版本,现在如果测试失败,它就不会运行.
这对于设置依赖性非常有用.
TeamCity允许我使用## teamcity交互从我的MsBuild脚本报告.我可以使用它来告诉TeamCity构建已经失败,或者确实已经成功,但是我想告诉它取消构建.有谁知道这样做的方法?
我可以用它来告知TeamCity失败......
<Message Text="##teamcity[buildStatus status='FAILURE']" Condition="Something==SomeCondition" />
Run Code Online (Sandbox Code Playgroud)
我很乐意这样做......
<Message Text="##teamcity[buildStatus status='CANCEL']" Condition="Something==SomeCondition" />
Run Code Online (Sandbox Code Playgroud)
我已经尝试过TeamCity服务任务,但到目前为止还没有.
编辑:
因此,虽然可以使用解决方法http请求取消构建,但似乎此功能不可用.还有一个功能请求取消构建TC网站.如果这是你想要的东西(或者想帮助我吗?)那么投票吧!
干杯