添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

BuildBot是一个开源的基于python的持续集成系统,它能够以下三种方式触发相应的自动构建和测试运行,从而迅速的发现问题所在,同时指出造成这个错误的开发人员,当然我们还可以通过页面直观的了解到当前所有和master绑定的任务以及各种测试状态。

  • 监控代码管理库的变化从而触发构建测试任务
  • 通过配置从而定时触发构建测试任务
  • 通过配置从而允许强制触发构建测试任务
  • 因为它有很多比较好的特点:

  • 跨平台:可以运行在各种平台上,实现不同平台上的测试
  • 可以处理各种语言编写的程序,例如C,Java,Python
  • 环境要求低并且配置简单:仅仅需要Python,和网络库Twisted
  • 结果的交付方式多,例如Email,webpage,IRC或者其他协议工具
  • 通过子类继承并重写父类从而灵活的配置
  • 很好的实现了分布式部署和集成工作
  • BuildBot用python写的,该python程序只依赖python环境和Twisted(一个python网络框架),可以在很多平台运行。 自动化构建一般包括自动下载源码,编译,测试,打包。

    2.1系统架构

    Buildbot包含一个服务端,一个或多个客户端。以星形拓扑结构连接。需要配合GIT,SVN,CVS等相关版本工具使用。master可以给任意一个slave发送命令,slave执行master发送的命令并返回执行的结果。

    来回发送大量命令是不太合适的,可以在slave中写出一个总的执行脚本,而master发送的命令只是启动这个脚本。
    Buildbot的原理是git,SVN等源码服务器上代码发生变化后,buildmaster(服务端)通知连接到它上的buildslave(客户端)从git或SVN服务器上自动下载源码,编译,测试,打包。最后把各个buildslave的自动化构建的结果搜集起来在web上展现,或通过email,IRC等方式通知相应的项目开发人员。

    2.2测试状态结构体系

    master有一个总的status对象负责监控所有连接到自己的slave的连接状态对象,通过这个连接对象获得完整构建的状态及层次结构。
    在master.cfg配置文件中,控制各个status对象,获得每个slave的连接状态,以前的构建信息等,通过浏览器创建一个url调用html.Waterfall插件的query-on-demand接口可以获得Builder, Build, Step, and LogFile等各种请求信息。
    每一次的项目构建都可以产生一个status对象,可以通过MailNotifier每一次构建都建立一个邮件列表。

    Buildbot所需要的Python依赖环境比较多,而且版本依赖比较严重,0.8.x和0.9.x中很多类的使用以及命名有很大区别本教程的master是以0.9.0b7这个版本来搭建的。

  • Python 版本:2.7
    官方手册中要求的是2.6或2.7,不能使用其他的版本
  • Twisted 版本:11.0.0及以上
  • sqlite3 版本:3.7.0及以上
  • Jinja2 版本:2.1及以上
  • SQLAlchemy 版本:0.8.0及以上
  • SQLAlchemy-Migrate 版本:0.9.0及以上
  • Python-Dateutil 版本1.5及以上
  • Autobahn0.10.0及以上
  • windows下还需要安装Pywin32支持
  • https://github.com/crossbario/autobahn-python

    WebSocket and WAMP in Python for Twisted and asyncio http://crossbar.io/autobahn

    Autobahn|Python is a subproject of Autobahn and provides open-source implementations of:
    The WebSocket Protocol
    The Web Application Messaging Protocol (WAMP)
    for Python 2 and 3, and running on Twisted and asyncio.