为什么buildbot在应该失败的时候没有失败?
我正在尝试修复一个非常复杂的构建机器人基础构建系统,这个系统有个让人烦恼的习惯,就是在显示绿色条的时候,里面却有“失败(1)”的提示。
问题是我们使用ShellCommand这个构建步骤运行几个命令,当这些命令返回非零值时,并不会导致整个构建失败。
我们还有一些步骤在详细页面上显示为红色,但整个构建依然显示为绿色。
据我所知,在我的master.cfg文件中,步骤本身并没有设置'flunkOnFailure',而默认值是true。(虽然我找到的手册页面对此并不是很清楚)
我需要做些什么(或者撤销什么),才能确保当ShellCommand失败时,整个构建也会失败呢?
这个系统是在100%的Linux环境下运行的。
非常感谢。
2 个回答
2
在BuildStep
中,flunkOnFailure
的默认值是False
。一些子类会覆盖这个默认值,特别是ShellCommand
。我猜那些显示为红色的步骤,虽然最终构建结果是绿色的,可能是因为它们没有设置flunkOnFailure
。
另一方面,也有可能是haltOnFailure
没有被设置,这样其他步骤就会继续运行并成功,但整体构建结果还是失败。即使某些步骤成功,它们的显示仍然是绿色的,即使它们是在一个失败的步骤之后。特别是,瀑布页面的主体并没有明确指示某个构建是成功还是失败(虽然顶部的框框显示的是最近一次构建的结果)。无论是网格视图还是最近构建页面,都会清楚地显示构建的结果。
5
当你往工厂里添加一个步骤(比如 f.addStep(your_step))时,应该设置 haltOnFailure = True,这样如果某个步骤出错了,整个构建过程就会失败。