如何在公司中扩展buildbot

aby*_*byx 12 buildbot

我最近一直在研究buildbot,缺乏良好的文档和样本配置使得很难理解buildbot的常用方式.

根据buildbot手册,每个buildmaster负责1个代码库.这意味着,想要在10个项目上使用buildbot的公司需要维护10组不同的buildbot安装(主从配置,开放端口,带输出的网站等).这真的是事情的完成方式吗?我错过了一个创建易于维护和监控的混搭的选项吗?

谢谢!

Owe*_*rce 4

在我的工作场所,我们使用 Buildbot 在多种架构和 Python 版本上测试单个程序。我使用一名构建大师来监督大约 16 个奴隶。每组从站从不同的存储库中提取数据并针对 Python 2.X 进行测试。

根据我的经验,配置单个构建主机来运行项目的混搭是很容易的。这可能不是一个好主意,因为瀑布页面(构建从站报告结果的地方)可能会因为多个从站而变得非常拥挤。如果您可以轻松地滚动较长的瀑布页面,那么这将不是问题。

编辑:

master.cfg中的更新命令:

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

000-buildbot 和 ctb 是附加参数,用于指定从哪个分支和存储库获取信息。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)
Run Code Online (Sandbox Code Playgroud)

这两个项目不必相关。Buildbot 为每个构建器创建一个目录并运行该目录中的所有步骤。

  • 为什么使用带有“git pull”的 ShellCommand 而不是实际的 Git 步骤?http://djmitche.github.com/buildbot/docs/0.7.11/#Git (3认同)