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