buildbot试水

来源:互联网 发布:陆道宏 盘石软件 编辑:程序博客网 时间:2024/05/22 04:32

前言

做为一个pythoner,CI一直用Jenkins,总感觉开发个Python还得玩Java,麻烦。就拿buildbot试试水,写写学习笔记。

基本命令

  • 安装:

    • master:

      pip install buildbot

      buildbot create-master master #创建工作目录

      mv master/master.cfg.sample master/master.cfg

      buildbot start master # 启动服务

    • slave

      pip install buildbot-slave

      buildslave create-slave slave localhost:9989 example-slave pass # 创建slave工作目录,其中端口9989,用户名example-slave,密码pass必须与master.cfg一致

      buildslave start slave # 启动slave,启动后可以访问 http://localhost:8010

自定义配置

用来对自己的project做CI,git版本控制,CI 必经步骤:通过单元测试。

  • code source monitor:

    c['change_source'].append(changes.GitPoller('xxx.git url', workdir='project name', branch='dev',pollinterval=300))

  • build factory

    factory = util.BuildFactory()

    factory.addStep(steps.Git(repourl='xxx.giturl', mode='incremental')) # check out the source

    mycommand = steps.MasterShellCommand(command="source /home/lxxx/py27/bin/activate;cd /home/lxxx/workspace/projectdir/;coverage run --source=handler,service -m test.all;coverage report -m ")

    factory.addStep(my_command)

  • link to project

    c['title'] = "project_name"

    c['titleURL'] = "project_url"

以上部分即可用buildbot实现自有project的自定义unittest

小结

  1. Python代码当作配置文件,特立独行的奇葩,要逼死其他语言开发者哇

  2. tutorial很狗血,除了安装启动,没货。开发者都是希望能拿来对自己工程做CI,至少应该介绍到如何改改配置文件,适用于开发者自己的工程。如果看不到实际的功效,我想没几个人愿意接下来读完文档

  3. 产品定位高大上,还支持make, install等等非Python工程的命令,却连最基本的Python unittest都支持的很烂,还非要拉上Twisted trial。先完美支持标准库unittest,再拉扯trial好吗?先把Python开发者的事完美解决了,再拉拢C, C++码农好吗

  4. 为了搞个Python unittest,没法,只能 ShellCommand,在shell执行Python单元测试命令。可惜这个 ShellCommand只能以命令退出码判断是否失败,而不能探测到测试用例失败否。其实不怕麻烦,自己写个脚本专门跑单元测试,遇到用例不过,返回1,全部通过返回0,也可以勉强实现。不过,有这功夫也就不用buildbot了。

  5. web界面不敢恭维,不说丑,至少不好看。

暂时舍弃

buildbot(0.8.12)还不够完美,暂时真心不好用。还是crontab + coverage省事。

coverage跑单元测试,并且统计代码覆盖率,并且生成报表,邮件给组员。

详见 http://nedbatchelder.com/code/coverage/

转载请务必注明出处!尊重原创,尊重分享!

0 0
原创粉丝点击