Ответ 1
В моем месте работы мы используем Buildbot для тестирования одной программы по нескольким архитектурам и версиям Python. Я использую один мастер сборки для наблюдения за 16 подчиненными. Каждый набор подчиненных устройств вытягивается из другого репо и проверяет его на Python 2.X.
По моему опыту, было бы легко сконфигурировать один мастер сборки, чтобы запустить mash-up проектов. Это может быть не очень хорошая идея, потому что страница с водопадом (где результаты отчетов о подчиненных сборках) может сильно перегружаться более чем несколькими подчиненными. Если вам удобнее прокручивать страницу с длинными водопадами, это не будет проблемой.
EDIT:
Команда update в файле master.cfg:
test_python26_linux.addStep(ShellCommand, name = "update pygr",
command = ["/u/opierce/PygrBuildBot/update.sh","000-buildbot","ctb"], workdir=".")
000-buildbot и ctb являются дополнительными параметрами, чтобы указать, какую ветвь и репо вытащить для получения информации. script 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 создает каталог для каждого строителя и выполняет все шаги в этом каталоге.