Сборочная среда ABF

Материал из Rosalab Wiki
Перейти к: навигация, поиск

ABF (Automatic Build Farm) – это распределенная среда непрерывной разработки дистрибутивов СПО и прикладных программ для них на основе системы управления версиями Git. ABF спроектирован как структурный фасад для частных (дистрибутиво-зависимых) технических процессов. Данный подход позволяет с минимальным порогом входа, без масштабных изменений в пакетных базах и технологиях сборки, добавлять в ABF дистрибутивы на различных пакетных базах. Единая внешняя логика, поддерживаемая ABF, предоставляет возможность быстрого обмена функционалом между группами разработчиков из базовых и производных дистрибутивов и между разными базовыми дистрибутивами, а также ускоряет появление в дистрибутивах нового прикладного функционала от внешних поставщиков.

Функционал альфа-версии ABF

Состояние на февраль 2012 (подробнее в руководстве пользователя):

  • Управление пользователями, ролями, пакетами, репозиториями (пользовательскими, групповыми, платформами), бранчами (ветками), заданиями на сборку;
  • Создание проектов (соответствующих пакетам ОС) на основе импорта внешних src.rpm или клонирования (форка) доступных пакетов ABF в пользовательский репозиторий;
  • Публичный или ограниченный доступ к платформам/репозиториям;
  • Просмотр данных об исходном коде пакетов (история изменений, авторы, версии);
  • Сборка бинарных пакетов под указанную архитектуру в пользовательский репозиторий либо общественный репозиторий (платформу);
  • Мониторинг состояния сборки пакетов на распределенном множестве сборочных узлов;
  • Сборка ISO-образов дистрибутивов;
  • Назначение различных полномочий пользователей на выполнение операций вплоть до уровня отдельных пакетов;
  • Ведение журнала операций и возможность полного аудита событий в системе.

Помимо перечисленного функционала, альфа-версия ABF поддерживает (в экспериментальном режиме) сборку пакета с учетом его обратных зависимостей. Данный механизм позволяет проверить при обновлении пакета отсутствие нарушений сборки во всем множестве зависимых от него пакетов путем построения согласованной иерархии сборочных контейнеров.

ABF разработан в компании РОСА полностью «с нуля» и реализован на Python и Ruby on Rails. Альфа-версия ABF работает через веб-интерфейс.

Ссылки:

Веб-интерфейс ABF (прием заявок)
Форум проекта
Комментарий по НПП от R&D ЗАО "РОСА"

Документация по теме «Сборочная среда ABF»