Buildbot 简介
什么是Buildbot
Buildbot 是一个自动化的持续集成框架,可以编译,发布,自动化测试,基于 Python,可扩展性强。比如有新提交触发整个流程,或者定时触发。详细见官网
安装
安装Python
安装 pywin32 库
安装pip
pip install --upgrade pip
安装buildbot
pip install buildbot[bundle]
创建master
- 创建一个根目录,比如
xxx/TestProject,并进到这个目录, 运行命令
buildbot create-master master
- 完成之后,目录下就会出现
master目录,复制默认的配置文件
copy master\master.cfg.sample master\master.cfg
- 启动
master,成功后访问http://localhost:8010/ ,即可打开Buildbot主页
buildbot start master
- 如果修改了配置文件,需要执行以下命令来生效
buildbot reconfig master
创建worker
- 进入之前的根目录,执行命令
pip install buildbot-worker
pip install setuptools-trial
- 创建
worker
buildbot-worker create-worker worker localhost example-worker pass
-
create-worker参数worker:worker的名称localhost: 要连接的master地址,这里是本机地址example-worker:worker用户名,要配置在master的配置文件中pass:worker密码,要配置在master的配置文件中
-
启动
worker
buildbot-worker start worker
- 运行成功后,打开主页,就会看见一个
runtests测试项目
执行编译
- 打开http://localhost:8010/
,
Builds -> Builders -> runtests,然后再点右上角force按钮,再点Start Build开始编译
自定义
增加编译属性
Scheduler 有个 properties 属性,可以在这里添加各个选项,然后就会在页面上显示出来,比如
c['schedulers'].append(
schedulers.ForceScheduler(
# ...
properties=[
util.BooleanParameter(name="is_debug", label="Debug", default=True),
util.BooleanParameter(name="is_release", label="Release", default=True),
]))
以上代码添加了两个Bool 型选项,相应的在页面上就会出现两个复选框,其他常用类型的Parameter如下
NestedParameter: 分组参数,可以在fields里添加其他Parameter,这些Parameter构成一组。FixedParameter: 固定参数,这些参数不会在页面上显示出来,但是依然会用默认值生成相应的参数,所以如果一些默认的参数不想在页面上显示,那么可以将这些参数改成FixedParameter。例如不想显示reason:reason=util.FixedParameter(name="reason", default="force build")。StringParameter: 字符串参数TextParameter: 字符串参数,可多行输入IntParameter: 整型参数BooleanParameter: 布尔型参数UserNameParameter: 用户名参数ChoiceStringParameter: 也是字符串参数,不过在页面上以组合框显示
动态控制build step
step 有一个doStepIf属性,可以和上面的自定义编译属性结合来动态控制是否触发一个编译步骤,例如
factory.addStep(steps.ShellCommand(name = 'Test',
command=["echo", "Debug"],
doStepIf=(util.Property('is_debug') == True)))
只有在勾选了Debug后,才会触发这个编译步骤,否则跳过