Что такое ABF
Архитектура платформы, преимущества облачной сборки.
На этой странице
ABF (Automated Build Farm) — это платформа ROSA для автоматизированной сборки и публикации пакетов.
abf.io. В этом курсе основным публичным адресом считаем abf.rosa.ru. Если сам интерфейс ABF показывает другой canonical URL, ориентируйтесь на него.Зачем нужна сборочная ферма
Локальная сборка удобна для разработки, но имеет ограничения:
- Одна архитектура — вы можете собрать только для своей системы
- Загрязнённое окружение — установленные пакеты влияют на сборку
- Невоспроизводимость — «у меня работает» не гарантирует работу у других
- Ручная публикация — нужно самому выкладывать RPM
ABF решает эти проблемы.
Возможности ABF
Мультиархитектурная сборка
Одним нажатием кнопки пакет собирается для всех доступных архитектур (зависит от платформы):
- x86_64
- aarch64 (ARM64)
- i686 (если доступна для выбранной платформы)
Чистое окружение
Каждая сборка начинается с нуля:
- Создаётся минимальный chroot
- Устанавливаются только указанные BuildRequires
- Запускается сборка
- Окружение уничтожается
Это гарантирует, что если пакет собрался на ABF — он соберётся где угодно.
Автоматическая публикация
После успешной сборки пакет публикуется в тот репозиторий проекта, который вы выбрали при запуске сборки. На практике новичок почти всегда начинает с личного репозитория.
Логи и артефакты
Всё сохраняется:
- Полные логи сборки
- Готовые RPM и SRPM
- История всех сборок
Архитектура ABF
┌─────────────────────────────────────────────────────────┐
│ WEB INTERFACE │
│ https://abf.rosa.ru │
└─────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────┐
│ ABF API │
│ REST API для автоматизации │
└─────────────────────────────────────────────────────────┘
│
┌───────────────┼───────────────┐
▼ ▼ ▼
┌──────────┐ ┌──────────┐ ┌──────────┐
│ Builder │ │ Builder │ │ Builder │
│ x86_64 │ │ i686 │ │ aarch64 │
└──────────┘ └──────────┘ └──────────┘
│ │ │
└───────────────┼───────────────┘
▼
┌─────────────────────────────────────────────────────────┐
│ РЕПОЗИТОРИИ │
│ abf-downloads.rosalinux.ru │
└─────────────────────────────────────────────────────────┘
Компоненты ABF
Проекты (Projects)
Каждый пакет — это проект с git-репозиторием:
https://abf.rosa.ru/import/firefox
↑ ↑
группа название проекта
Группы (Groups)
Проекты объединяются в группы:
import— основные пакеты дистрибутиваcommunity— пакеты от сообществаusername_personal— личные проекты пользователя
Платформы (Platforms)
Платформа — это техническое имя репозитория и сборочной среды. В рамках курса вам чаще всего встретятся:
rosa13— актуальная публичная платформа ROSA Fresh 13.x;rosa2021.1— семейство ROSA Fresh 12.x / LTS.
Точное имя платформы всегда смотрите прямо в ABF при создании build list.
Репозитории платформы
Каждая платформа имеет репозитории (набор может отличаться):
main/release— стабильные пакетыmain/updates— обновленияmain/testing— тестовые версииcontrib/release— пакеты сообщества
URL-структура ABF
Веб-интерфейс
https://abf.rosa.ru/группа/проект
https://abf.rosa.ru/import/firefox
https://abf.rosa.ru/username_personal/mypackage
Git-репозитории
git@abf.rosa.ru:группа/проект.git
git@abf.rosa.ru:import/firefox.git
Репозитории пакетов
https://abf-downloads.rosalinux.ru/группа/repository/платформа/архитектура/тип/статус/
https://abf-downloads.rosalinux.ru/import/repository/ROSA_PLATFORM/x86_64/main/release/
# где ROSA_PLATFORM = rosa13 (или имя платформы из ABF)
Workflow на ABF
1. Создание проекта
└── git-репозиторий с SPEC и исходниками
2. Запуск сборки
└── Выбор платформы и архитектур
3. Сборка на билдерах
├── Создание chroot
├── Установка BuildRequires
├── rpmbuild
└── Очистка
4. Результат
├── Успех → RPM и SRPM в репозитории проекта
└── Ошибка → Анализ логов → Исправление → Повтор
Как новичку использовать ABF без боли
- Сначала соберите пакет локально.
- Только потом переносите его в ABF.
- Начинайте с одной платформы и одной архитектуры, обычно
rosa13+x86_64. - Публикуйте сперва в личный репозиторий.
- Лишь после успешной локальной и ABF-сборки думайте о ревью и общем репозитории.
Преимущества ABF для сборщика
- Не нужно мощное железо — сборка на сервере
- Все архитектуры сразу — один клик
- Гарантия воспроизводимости — чистое окружение
- Автоматизация — API для скриптов
- История — все сборки сохраняются
- Совместная работа — права доступа, группы
Сравнение с другими системами
| Система | Используется в |
|---|---|
| ABF | ROSA, OpenMandriva |
| Koji | Fedora, CentOS |
| OBS | openSUSE |
| Launchpad | Ubuntu |
Проверьте понимание
- Какие преимущества даёт сборка на ABF по сравнению с локальной?
- Что такое «чистое окружение» сборки?
- Из каких основных компонентов состоит ABF?
- Куда попадают пакеты после успешной сборки?
- Какие архитектуры поддерживает ABF?
Далее: Регистрация и настройка