我最近一直在研究buildbot,缺乏良好的文档和示例配置使得很难理解buildbot的常用方式。
根据buildbot手册,每个buildmaster负责1个代码库。这意味着想要在10个项目上使用buildbot的公司需要维护10组不同的buildbot安装(主从配置,开放端口,带输出的网站等)。这真的是事情的完成方式吗?我错过了一个创建易于维护和监控的混搭的选项吗?
谢谢!
答案 0 :(得分: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=".")
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为每个构建器创建一个目录,并运行该目录中的所有步骤。
答案 1 :(得分:3)
仅供参考,BuildBot 0.8.x在一个主服务器上支持几个存储库,简化了一些事情。