13

我最近一直在研究 buildbot,由于缺乏良好的文档和示例配置,因此很难理解 buildbot 的常用用法。

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

谢谢!

4

2 回答 2

4

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

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

编辑:

master.cfg 中的更新命令:

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 为每个构建器创建一个目录并运行该目录中的所有步骤。

于 2009-08-02T20:45:09.570 回答
3

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

于 2010-10-28T19:53:12.257 回答