Подтвердить что ты не робот

Как масштабировать buildbot в компании

В последнее время я смотрю на buildbot, и отсутствие хорошей документации и конфигураций образцов затрудняет понимание того, как обычно используется buildbot.

Согласно руководству по сборке, каждый строительный мастер отвечает за 1 базу кода. Это означает, что компания, которая хочет использовать buildbot на, скажем, 10 проектах, должна поддерживать 10 различных наборов установок buildbot (конфигурации master-slave, открытые порты, веб-сайты с выходом и т.д.). Это действительно так, как это делается? У меня отсутствует опция, которая создает сетку, которую легко поддерживать и контролировать?

Спасибо!

4b9b3361

Ответ 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 создает каталог для каждого строителя и выполняет все шаги в этом каталоге.

Ответ 2

FYI, BuildBot 0.8.x поддерживает несколько репозиториев на одном хозяине, немного упрощая вещи.