python - BuildBot 中的条件步骤

标签 python buildbot

我正在尝试使用条件步骤使用 BuildBot 创建构建配置。特别是,我希望根据前面的步骤是否失败来执行条件步骤,如下所示:

factory = util.BuildFactory()
factory.addStep(MyCoolStep())
factory.addStep(CommitWork(), doStepIf='MyCoolStepWorked')
factory.addStep(RollbackWork(), doStepIf='MyCoolStepFailed')

根据文档,“doStepIf”采用 bool 限定符。如何访问上一步的结果?或者我需要在某处设置自定义属性吗?我对 Python 有点陌生,所以我不确定 buildbot 主配置中各种变量和对象的范围。

最佳答案

Buildbot 中的每个步骤都会返回 SUCCESSWARNINGSSKIPPEDFAILURE 状态已取消异常重试

因此,如果 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/

相关文章:

jenkins - 来自 cron 的简单持续集成?

python - Buildbot 解析 Python 单元测试结果

python - 将 word2vec bin 文件转换为文本

python - django static_root理解-IOError-??

python - 如何从python中的数组中删除分号?

python 继承函数在 init 期间重写

java - 当使用Python的subprocess.Popen()退出启动java程序时,为什么子进程打开的数据库连接没有关闭?

python - BuildBot - 可以进行动态 repo 结账吗?

buildbot - BuildBot 中是否可以有多个源结帐步骤?

python - 如何附加到 BuildBot ShellCommand 的 PATH 环境变量