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

Пройдет некоторое время, прежде чем Хаскелл начнет обретать смысл. У меня второй месяц обучения Хаскелу, и это моя вторая попытка за последние два года. На этот раз я начал с Маленького Схемера. Потом я посмотрел видео Гизеля. Чтение RWH в первый раз было катастрофой, но теперь это имеет смысл, так что, надеюсь, через 6 месяцев это станет яснее. Код, который я могу написать на Хаскеле, гораздо более лаконичен.

Подводя итоги, это займет время, но оно того стоит. Кстати, IRC #haskell - отличный ресурс, который поможет вам освоиться.

Мой совет, найдите небольшой программный проект и прогрызите его в Haskell. Не беспокойтесь о том, чтобы написать это способом Хаскели. Просто начни делать это на Хаскеле ..

12
задан abyx 2 August 2009 в 20:22
поделиться

1 ответ

На моем рабочем месте мы используем 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 являются дополнительными параметрами, чтобы указать, какая ветвь и репо, чтобы получить информацию. Обновление скрипта. 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 создает каталог для каждого сборщика и выполняет все шаги в этом каталоге.

4
ответ дан 2 December 2019 в 23:08
поделиться