【发布时间】:2013-01-08 02:20:07
【问题描述】:
我有一个包含几个步骤的 buildbot 构建工厂。其中一个步骤会定期超时,导致 buildbot 抛出异常并退出。但是,即使在这种情况下,我也希望能够存储生成的日志。
一种选择是添加一个仅在上一步超时时才运行的步骤。可以使用doStepIf。但是,没有办法看到TIMEOUT 的状态,只有SUCCESS, WARNINGS, FAILURE, or SKIPPED。
解决这个问题的最佳方法是什么?
doStepIf 函数的示例:
from buildbot.status.builder import Results, SUCCESS
def doStepIf(step):
allSteps = step.build.getStatus().getSteps()
lastStep = allSteps[-1]
rc = lastStep.getResults()[0] # returns a tuple of (rc, string)
# if the rc == SUCCESS then don't continue, since we don't want to run this step
return Results[rc] == Results[SUCCESS]
【问题讨论】:
-
haltOnFailure属性值有你的步骤吗?如果设置为 True,则将跳过进一步的步骤(例如日志存储),除非它们将alwaysRun属性设置为 True。详情见docs.buildbot.net/latest/manual/…