Сборочная среда ABF — различия между версиями
StasFomin (обсуждение | вклад) |
StasFomin (обсуждение | вклад) |
||
Строка 1: | Строка 1: | ||
− | '''ABF''' (''Automatic Build Farm'') | + | '''ABF''' (''Automatic Build Farm'') — это распределенная среда разработки и сборки программных продуктов для ОС Linux и создания дистрибутивов на их основе. ABF предоставляет удобный интерфейс для одновременной сборки продукта под различные аппаратные и программные платформы. |
− | =Основные сущности ABF= | + | = Основные сущности ABF = |
ER-диаграмма ABF представлена на рисунке ниже. | ER-диаграмма ABF представлена на рисунке ниже. | ||
[[File:Abf erd rus.png|640px|center|none|ER-диаграмма ABF]] | [[File:Abf erd rus.png|640px|center|none|ER-диаграмма ABF]] | ||
− | Основными действующими лицами в ABF являются | + | * Основными действующими лицами в ABF являются ''пользователи'', которые могут объединятся в ''группы''. |
+ | * У каждого пользователя и каждой группы есть ''персональный репозиторий'', в который они могут собирать свои программные ''проекты''. | ||
+ | * Проект содержит исходный код приложения и другие файлы, необходимые для его сборки. | ||
+ | * Исходный код и текстовые файлы хранится в ''Git-репозитории'', а бинарные файлы помещаются в отдельное ''файловое хранилище'' (а в Git-репозиторий помещается специальный файл со ссылками на бинарные файлы в хранилище). | ||
− | Помимо персональных репозиториев, проекты могут быть собраны в репозитории того или иного дистрибутива, собираемого на ABF. В терминах ABF, каждому дистрибутиву Linux соответствует отдельная | + | Помимо персональных репозиториев, проекты могут быть собраны в репозитории того или иного дистрибутива, собираемого на ABF. В терминах ABF, каждому дистрибутиву Linux соответствует отдельная ''платформа'', а ''репозитории платформы'' соответствуют репозиториям дистрибутива. |
− | + | Чтобы иметь возможность собрать проект в репозиторий платформы, его необходимо явно прикрепить к этому репозиторию (что может потребовать соответствующих привилегий). Для удобства, ABF позволяет ассоциировать отдельную ветку Git-репозитория с конкретной платформой. | |
− | + | Также для каждой платформы задаются аппаратные архитектуры, сборка для которых производится по умолчанию. | |
− | + | == Функционал ABF == | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ;Для разработчика: | |
+ | * git-репозиторий; | ||
+ | * легковесный проектный трекер задач; | ||
+ | * проектная вики; | ||
+ | * возможность редактирования файлов в веб-интерфейсе; | ||
+ | * гибкое управление правами доступа к проекту, включая группы; | ||
+ | * проект может быть публичным, доступным для чтения всем пользователям, или приватным, доступный только ограниченному кругу лиц и невидимый остальным; | ||
+ | * возможность комментировать сделанные изменения (коммиты); | ||
+ | * возможность сравнения (diff), просмотра истории изменений (log), аннотация файла (blame) в веб-интерфейсе; | ||
+ | * возможность клонировать (fork) исходного кода любого публичного проекта ABF. | ||
− | *импорт исходного кода из src.rpm через веб-интерфейс; | + | ;Для мэйтейнера: |
− | *возможность собирать в свой частный репозиторий, доступный всем пользователям ABF; | + | * импорт исходного кода из src.rpm через веб-интерфейс; |
− | *удобный мониторинг задач, позволяющий увидеть состояние ваших, связанных с вами или всех доступных сборочных заданий; | + | * возможность собирать в свой частный репозиторий, доступный всем пользователям ABF; |
− | *подробный лог сборки; | + | * удобный мониторинг задач, позволяющий увидеть состояние ваших, связанных с вами или всех доступных сборочных заданий; |
− | *возможность установить для тестирования собравшийся пакет (контейнер сборки, представляющим собой полноценный репозиторий) до выкладывания его в общий репозиторий; | + | * подробный лог сборки; |
− | *возможность одновременной сборки под несколько архитектур и платформ одновременно; | + | * возможность установить для тестирования собравшийся пакет (контейнер сборки, представляющим собой полноценный репозиторий) до выкладывания его в общий репозиторий; |
− | *возможность выбора, какие репозитории платформы будут подключены для сборки, индивидуально для каждой платформы; | + | * возможность одновременной сборки под несколько архитектур и платформ одновременно; |
− | *возможность отмены задания на сборку; | + | * возможность выбора, какие репозитории платформы будут подключены для сборки, индивидуально для каждой платформы; |
− | *легкое подключение частного репозитория(генерирует команду для подключения); | + | * возможность отмены задания на сборку; |
− | *чистая и безопасная сборка на распределенном множестве сборочных узлов. | + | * легкое подключение частного репозитория (генерирует команду для подключения); |
+ | * чистая и безопасная сборка на распределенном множестве сборочных узлов. | ||
− | + | ;Для владельцев и участников платформ: | |
+ | * поддержка собственного дистрибутива в рамках ABF; | ||
+ | * возможность управление репозиториями (включение/исключение проектов); | ||
+ | * возможность сборки продуктов (ISO образов). | ||
− | + | ;Для администраторов: | |
− | * | + | * управление пользователями (в том числе и блокировка); |
− | *возможность | + | * ведение журнала операций и возможность полного аудита событий в системе. |
− | + | ;Для всех: | |
− | + | * удобный, понятный и легкий веб-интерфейс; | |
− | + | * возможность создавать и участвовать в различных группах и проектах; | |
− | + | * гибкая настраиваемая почтовая система оповещений о различных событиях в системе; | |
− | + | * лента активности, позволяющая быть в курсе последних событий в ваших проектах в веб-интерфейсе; | |
− | + | * публичный профиль участника, где показаны его контактные данные, а также список его публичных проектов. | |
− | + | ||
− | *удобный, понятный и легкий веб-интерфейс; | + | |
− | *возможность создавать и участвовать в различных группах и проектах; | + | |
− | *гибкая настраиваемая почтовая система оповещений о различных событиях в системе; | + | |
− | *лента активности, позволяющая быть в курсе последних событий в ваших проектах в веб-интерфейсе; | + | |
− | *публичный профиль участника, где показаны его контактные данные, а также список его публичных проектов. | + | |
Помимо перечисленного функционала, ABF поддерживает в экспериментальном режиме сборку пакета с учетом его обратных зависимостей. Данный механизм позволяет проверить при обновлении пакета отсутствие нарушений сборки во всем множестве зависимых от него пакетов путем построения согласованной иерархии сборочных контейнеров. | Помимо перечисленного функционала, ABF поддерживает в экспериментальном режиме сборку пакета с учетом его обратных зависимостей. Данный механизм позволяет проверить при обновлении пакета отсутствие нарушений сборки во всем множестве зависимых от него пакетов путем построения согласованной иерархии сборочных контейнеров. | ||
− | ABF разработан в компании РОСА полностью «с нуля» и реализован на | + | ABF разработан в компании РОСА полностью «с нуля» и реализован на Ruby on Rails. |
+ | Работа с ABF может производиться через веб-интерфейс, через REST API, а также посредством [[Консольный_клиент_ABF|консольного клиента]]. | ||
== Ссылки: == | == Ссылки: == | ||
− | [https://abf.io/ Веб-интерфейс публичной системы ABF] | + | * [https://abf.io/ Веб-интерфейс публичной системы ABF] |
− | [http://forum.rosalab.ru/viewforum.php?f=10 Форум проекта] | + | * [http://forum.rosalab.ru/viewforum.php?f=10 Форум проекта] |
− | [http://www.gosbook.ru/node/37078 Комментарий по НПП от R&D ЗАО "РОСА"] | + | * [http://www.gosbook.ru/node/37078 Комментарий по НПП от R&D ЗАО "РОСА"] |
Строка 69: | Строка 72: | ||
[[en:ABF]] | [[en:ABF]] | ||
− | |||
[[Категория:Сборочная среда ABF]] | [[Категория:Сборочная среда ABF]] |
Версия 01:03, 30 января 2015
ABF (Automatic Build Farm) — это распределенная среда разработки и сборки программных продуктов для ОС Linux и создания дистрибутивов на их основе. ABF предоставляет удобный интерфейс для одновременной сборки продукта под различные аппаратные и программные платформы.
Основные сущности ABF
ER-диаграмма ABF представлена на рисунке ниже.
- Основными действующими лицами в ABF являются пользователи, которые могут объединятся в группы.
- У каждого пользователя и каждой группы есть персональный репозиторий, в который они могут собирать свои программные проекты.
- Проект содержит исходный код приложения и другие файлы, необходимые для его сборки.
- Исходный код и текстовые файлы хранится в Git-репозитории, а бинарные файлы помещаются в отдельное файловое хранилище (а в Git-репозиторий помещается специальный файл со ссылками на бинарные файлы в хранилище).
Помимо персональных репозиториев, проекты могут быть собраны в репозитории того или иного дистрибутива, собираемого на ABF. В терминах ABF, каждому дистрибутиву Linux соответствует отдельная платформа, а репозитории платформы соответствуют репозиториям дистрибутива.
Чтобы иметь возможность собрать проект в репозиторий платформы, его необходимо явно прикрепить к этому репозиторию (что может потребовать соответствующих привилегий). Для удобства, ABF позволяет ассоциировать отдельную ветку Git-репозитория с конкретной платформой.
Также для каждой платформы задаются аппаратные архитектуры, сборка для которых производится по умолчанию.
Функционал ABF
- Для разработчика
- git-репозиторий;
- легковесный проектный трекер задач;
- проектная вики;
- возможность редактирования файлов в веб-интерфейсе;
- гибкое управление правами доступа к проекту, включая группы;
- проект может быть публичным, доступным для чтения всем пользователям, или приватным, доступный только ограниченному кругу лиц и невидимый остальным;
- возможность комментировать сделанные изменения (коммиты);
- возможность сравнения (diff), просмотра истории изменений (log), аннотация файла (blame) в веб-интерфейсе;
- возможность клонировать (fork) исходного кода любого публичного проекта ABF.
- Для мэйтейнера
- импорт исходного кода из src.rpm через веб-интерфейс;
- возможность собирать в свой частный репозиторий, доступный всем пользователям ABF;
- удобный мониторинг задач, позволяющий увидеть состояние ваших, связанных с вами или всех доступных сборочных заданий;
- подробный лог сборки;
- возможность установить для тестирования собравшийся пакет (контейнер сборки, представляющим собой полноценный репозиторий) до выкладывания его в общий репозиторий;
- возможность одновременной сборки под несколько архитектур и платформ одновременно;
- возможность выбора, какие репозитории платформы будут подключены для сборки, индивидуально для каждой платформы;
- возможность отмены задания на сборку;
- легкое подключение частного репозитория (генерирует команду для подключения);
- чистая и безопасная сборка на распределенном множестве сборочных узлов.
- Для владельцев и участников платформ
- поддержка собственного дистрибутива в рамках ABF;
- возможность управление репозиториями (включение/исключение проектов);
- возможность сборки продуктов (ISO образов).
- Для администраторов
- управление пользователями (в том числе и блокировка);
- ведение журнала операций и возможность полного аудита событий в системе.
- Для всех
- удобный, понятный и легкий веб-интерфейс;
- возможность создавать и участвовать в различных группах и проектах;
- гибкая настраиваемая почтовая система оповещений о различных событиях в системе;
- лента активности, позволяющая быть в курсе последних событий в ваших проектах в веб-интерфейсе;
- публичный профиль участника, где показаны его контактные данные, а также список его публичных проектов.
Помимо перечисленного функционала, ABF поддерживает в экспериментальном режиме сборку пакета с учетом его обратных зависимостей. Данный механизм позволяет проверить при обновлении пакета отсутствие нарушений сборки во всем множестве зависимых от него пакетов путем построения согласованной иерархии сборочных контейнеров.
ABF разработан в компании РОСА полностью «с нуля» и реализован на Ruby on Rails. Работа с ABF может производиться через веб-интерфейс, через REST API, а также посредством консольного клиента.
Ссылки: