我正在尝试使用条件步骤使用 BuildBot 创建构建配置。特别是,我希望根据前面的步骤是否失败来执行条件步骤,如下所示:
factory = util.BuildFactory()
factory.addStep(MyCoolStep())
factory.addStep(CommitWork(), doStepIf='MyCoolStepWorked')
factory.addStep(RollbackWork(), doStepIf='MyCoolStepFailed')
根据文档,“doStepIf”采用 bool 限定符。如何访问上一步的结果?或者我需要在某处设置自定义属性吗?我对 Python 有点陌生,所以我不确定 buildbot 主配置中各种变量和对象的范围。
最佳答案
Buildbot 中的每个步骤都会返回 SUCCESS
、WARNINGS
、SKIPPED
、FAILURE
、 状态已取消
、异常
、重试
因此,如果 MyCoolStep
有效,它会将构建状态设置为 SUCCESS
,您可以检查 CommitWork
来执行它。
对于RollbackWorkflow
,您可以检查构建是否处于FAILURE
状态并执行它。由于在此状态下会跳过 CommitWork
,因此整体状态不会升级为 SKIPPED
如果SKIPPED
,这两个步骤都会被隐藏,因此它们在不执行时不会污染 buildbot 输出。
def success(build):
return build.getStatus() == SUCCESS
def failure(build):
return build.getStatus() == FAILURE
def skipped(results, build):
return results == SKIPPED
factory = util.BuildFactory()
factory.addStep(MyCoolStep())
factory.addStep(CommitWork(), doStepIf=success, hideStepIf=skipped)
factory.addStep(RollbackWork(), doStepIf=failure, hideStepIf=skipped)
关于python - BuildBot 中的条件步骤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61534795/