Сборочная среда ABF
ABF (Automatic Build Farm) – это распределенная среда непрерывной разработки дистрибутивов СПО и прикладных программ для них на основе системы управления версиями Git. ABF спроектирован как структурный фасад для частных (дистрибутиво-зависимых) технических процессов. Данный подход позволяет с минимальным порогом входа, без масштабных изменений в пакетных базах и технологиях сборки, добавлять в ABF дистрибутивы на различных пакетных базах. Единая внешняя логика, поддерживаемая ABF, предоставляет возможность быстрого обмена функционалом между группами разработчиков из базовых и производных дистрибутивов и между разными базовыми дистрибутивами, а также ускоряет появление в дистрибутивах нового прикладного функционала от внешних поставщиков.
Функционал альфа-версии ABF
Состояние на февраль 2012 (подробнее в руководстве пользователя):
- Управление пользователями, ролями, пакетами, репозиториями (пользовательскими, групповыми, платформами), бранчами (ветками), заданиями на сборку;
- Создание проектов (соответствующих пакетам ОС) на основе импорта внешних src.rpm или клонирования (форка) доступных пакетов ABF в пользовательский репозиторий;
- Публичный или ограниченный доступ к платформам/репозиториям;
- Просмотр данных об исходном коде пакетов (история изменений, авторы, версии);
- Сборка бинарных пакетов под указанную архитектуру в пользовательский репозиторий либо общественный репозиторий (платформу);
- Мониторинг состояния сборки пакетов на распределенном множестве сборочных узлов;
- Сборка ISO-образов дистрибутивов;
- Назначение различных полномочий пользователей на выполнение операций вплоть до уровня отдельных пакетов;
- Ведение журнала операций и возможность полного аудита событий в системе.
Помимо перечисленного функционала, альфа-версия ABF поддерживает (в экспериментальном режиме) сборку пакета с учетом его обратных зависимостей. Данный механизм позволяет проверить при обновлении пакета отсутствие нарушений сборки во всем множестве зависимых от него пакетов путем построения согласованной иерархии сборочных контейнеров.
ABF разработан в компании РОСА полностью «с нуля» и реализован на Python и Ruby on Rails. Альфа-версия ABF работает через веб-интерфейс.
Ссылки:
Создание собственных сборочных клиентов для АБФ
Веб-интерфейс ABF (прием заявок)
Форум проекта
Комментарий по НПП от R&D ЗАО "РОСА"