代码之家  ›  专栏  ›  技术社区  ›  abyx

如何在公司中扩展BuildBot

  •  12
  • abyx  · 技术社区  · 15 年前

    我最近一直在研究buildbot,由于缺乏良好的文档和示例配置,很难理解buildbot是如何被广泛使用的。

    根据buildbot手册,每个buildmaster负责1个代码库。这意味着一个公司如果想在10个项目上使用buildbot,就需要维护10套不同的buildbot安装(主从配置、开放端口、有输出的网站等)。事情就是这样做的吗?我是否缺少一个创建易于维护和监视的混搭的选项?

    谢谢!

    2 回复  |  直到 14 年前
        1
  •  4
  •   Owen Pierce madhusudhan.K    15 年前

    在我工作的地方,我们使用buildbot在几个架构和Python版本上测试单个程序。我用一个建筑大师来监督大约16个奴隶。每一组从系统从不同的repo中提取并测试它与python 2.x。

    根据我的经验,很容易配置一个构建主控形状来运行项目的混搭。这可能不是一个好主意,因为瀑布页面(构建从服务器报告结果的地方)可能会被超过几个从服务器堵塞。如果您可以轻松地滚动浏览一个长长的瀑布页面,那么这就不是问题了。

    编辑:

    master.cfg中的update命令:

    test_python26_linux.addStep(ShellCommand, name = "update pygr",
        command = ["/u/opierce/PygrBuildBot/update.sh","000-buildbot","ctb"], workdir=".")
    

    000 buildbot和ctb是指定从哪个分支和repo获取信息的附加参数。脚本update.sh是我为避免不相关的git问题而编写的。如果您想运行不同的项目,可以编写如下内容:

    builder1.addStep(ShellCommand, name = "update project 1",
        command = ["git","pull","git://github.com/your_id/project1.git"], workdir=".")
    
     (the rest of builder1 steps)
    
    builder2.addStep(ShellCommand, name = "update project 2",
        command = ["git","pull","git://github.com/your_id/project2.git"], workdir=".")
    
    (the rest of builder2 steps)
    

    这两个项目不一定是相关的。buildbot为每个生成器创建一个目录,并运行该目录中的所有步骤。

        2
  •  3
  •   Macke    14 年前

    仅供参考,buildbot 0.8.x支持一个主机上的多个存储库,稍微简化了一些。

    推荐文章