- PVSM.RU - https://www.pvsm.ru -
В прошлом посте [1] я хотел познакомить читателей с buildbot'ом. Но тема была мной раскрыта не до конца.
Сегодня я постараюсь немного наверстать упущенное.
Если у Вас большой и сложный проект, то скорее всего ни одна система непрерывной интеграции из коробки не даст Вам то, чего вы хотите. И тут все выкручиваются как могут: кто-то пишет плагины, кто-то городит костыли. И, увы, второй вариант встречается достаточно часто. Это может быть связанно с тем, что выбранная CI система не обладает достаточной гибкостью.
Раз уж мы во главу стола ставим гибкость, то хорошо бы увидеть наглядные подтверждения оной.
Если ваш проект собирается под разные платформы, то на каждую сборку писать новый конфиг будет рутиной.
От того мы можем в пару-тройку строк сгенерировать нужное нам количество сборок из входных параметров.
Вот так [2] генерировались сборки ранних версий CyanogenMod
Хорошей практикой будет положить все конфиги вашего мастер-сервера в git и поручить билдботу обновлять самого себя.
Тогда уменьшится вероятность того, что вы что-то случайно сломаете, особенно если у Вас в фирме используется практика код-ревью.
Делается это примерно по следующей схеме:
Реализацию подобной схемы можно посмотреть тут [3].
На мой взгляд хранить конфиги всех сборок в одном файле очень неудобно. Но и каждый раз лезть в править мастер-конфиг, чтобы добавить в него новый импорт тоже радости не доставляет.
Для себя лично я написал вот [4] такую реализацию загрузчика, который автоматом подхватывает конфиги из определенной папки.
Скорее всего этого недостаточно, чтобы заинтересоваться билдботом. От того настоятельно рекомендую посетить сайт [5] проекта и посмотреть список success stories [6].
И если Вас по каким-либо причинам не устраивает ваша текущая система непрерывной интеграции, то я предлагаю обратить внимание на buildbot. По мне так он того стоит.
С удовольствием отвечу на вопросы.
Автор: HgeN
Источник [7]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/python/50540
Ссылки в тексте:
[1] прошлом посте: http://habrahabr.ru/post/204700/
[2] так: https://github.com/buildbot/buildbot/blob/master/master/docs/examples/repo_gerrit.cfg
[3] тут: https://github.com/ahitrin/buildbot-selfupdate
[4] вот: https://github.com/hgenru/buildbot-project-plugin
[5] сайт: http://buildbot.net
[6] success stories: http://trac.buildbot.net/wiki/SuccessStories
[7] Источник: http://habrahabr.ru/post/205670/
Нажмите здесь для печати.