如何在Buildbot中并行执行Builder内的步骤?
在Buildbot中并行执行Builder内的步骤
Buildbot支持并行执行步骤,但你尝试使用的Parallel类并不存在,正确的实现方式分两种场景:
1. 在多个Worker上并行执行不同步骤
如果你需要把不同的步骤分配到多个Worker上同时运行,可以使用ParallelStep类,它位于buildbot.steps.master模块下。
示例代码:
from buildbot.plugins import steps from buildbot.steps.master import ParallelStep # 构建工厂配置 factory.addStep(ParallelStep( steps=[ steps.ShellCommand( name='test.1', command=["run", "test1"] ), steps.ShellCommand( name='test.2', command=["run", "test2"] ) ] ))
ParallelStep会将内部的每个子步骤调度到可用的Worker上,实现跨Worker的并行执行。
2. 在同一个Worker上并行执行多个命令
如果要在同一个Worker上同时运行多个shell命令,不需要特殊的Buildbot步骤类,直接通过shell的后台执行语法即可:
from buildbot.plugins import steps factory.addStep(steps.ShellCommand( name='parallel-local-tests', command=["bash", "-c", "run test1 & run test2 & wait"] ))
这里通过&让两个命令后台运行,最后用wait等待所有命令完成,实现单Worker内的并行执行。
你在steps.py中找不到对应类的原因是,ParallelStep并不在buildbot.steps的根模块下,而是归类在buildbot.steps.master中。
内容的提问来源于stack exchange,提问作者rodee
相关产品推荐
相关产品推荐

