Запуск и мониторинг сборки
Как запустить сборку, следить за прогрессом, получить результат.
На этой странице
После подготовки репозитория можно запустить сборку на ABF.
Запуск сборки через веб-интерфейс
Шаг 1: Перейти в проект
https://abf.io/username_personal/mypackage
Шаг 2: Нажать «New build»
Или перейти в Build → New build list.
Шаг 3: Настроить параметры
- Project — выбран автоматически
- Branch/Tag — ветка по умолчанию (
main/master) или конкретный тег - Platform — выберите версию ROSA (в курсе используем Fresh 13.1):
rosa13.1— ROSA Fresh 13.1- другие платформы — по списку в ABF
- Architecture — выберите архитектуры (доступность зависит от платформы):
x86_64— 64-битнаяaarch64— ARM 64-biti686— 32-битная (если доступна)
- Repository — куда публиковать результат (набор зависит от платформы):
main/release— стабильныйmain/testing— для тестирования
Шаг 4: Запустить
Нажмите «Start build».
Статусы сборки
| Статус | Значение |
|---|---|
| Pending | В очереди |
| Build started | Сборка началась |
| Build is being published | Публикация в репозиторий |
| Success | Успешно завершена |
| Build error | Ошибка сборки |
| Publish error | Ошибка публикации |
| Tests failed | Тесты не прошли |
Мониторинг сборки
Страница сборки
После запуска вы попадёте на страницу со статусом:
https://abf.io/build_lists/12345
Здесь видно:
- Текущий статус
- Время начала/окончания
- Ссылки на логи
- Результирующие пакеты
Список сборок
Все ваши сборки:
https://abf.io/build_lists
Фильтры:
- По проекту
- По статусу
- По платформе
Email-уведомления
ABF отправляет email при:
- Начале сборки
- Успешном завершении
- Ошибке
Настройте в Settings → Notifications.
Просмотр логов
Основные логи
- mock-init.log — инициализация окружения
- mock.log — общий лог mock
- build.log — лог rpmbuild
Чтение логов
Логи доступны по ссылке на странице сборки.
Build log: [View] [Download]
При ошибке смотрите конец лога:
# Скачать и посмотреть конец
curl -s "https://abf.io/.../build.log" | tail -100
Типичная структура лога
==> Start building: mypackage-1.0.0-1.src.rpm
...
Executing(%prep): ...
Executing(%build): ...
error: Bad exit status from /var/tmp/rpm-tmp.xxxxx (%build)
Bad exit status from /var/tmp/rpm-tmp.xxxxx (%build)
Результаты сборки
Успешная сборка
После успеха доступны:
- SRPM — исходный пакет
- RPM — бинарные пакеты для каждой архитектуры
Ссылки на странице сборки:
Build results:
- mypackage-1.0.0-1.rosa13.1.src.rpm
- mypackage-1.0.0-1.rosa13.1.x86_64.rpm
- mypackage-debuginfo-1.0.0-1.rosa13.1.x86_64.rpm
Публикация
Пакеты автоматически появляются в репозитории:
https://abf-downloads.rosalinux.ru/username_personal/repository/ROSA_PLATFORM/x86_64/main/release/
# где ROSA_PLATFORM = rosa13.1 (или имя платформы из ABF)
Обновление кеша:
sudo dnf clean expire-cache
sudo dnf install mypackage
Пересборка
После исправления ошибки
- Исправьте SPEC или исходники
- Закоммитьте и отправьте:
git add . git commit -m "Fix build error" git push - Запустите новую сборку
Пересборка без изменений
Иногда нужно пересобрать (например, новая версия зависимости):
- Откройте предыдущую сборку
- Нажмите «Rebuild»
Или создайте новую сборку с тем же коммитом.
Сборка для нескольких платформ
Можно запустить сборку одновременно для нескольких платформ:
- Выберите несколько в списке Platform
- Или запустите отдельные сборки
Каждая платформа — отдельная сборка со своим статусом.
Зависимости между пакетами
Если ваш пакет зависит от другого вашего пакета:
Вариант 1: Сначала собрать зависимость
- Соберите и опубликуйте пакет-зависимость
- Дождитесь публикации в репозитории
- Соберите основной пакет
Вариант 2: Контейнеры сборки
ABF позволяет указать дополнительные репозитории:
В настройках сборки → Additional repos:
- Укажите URL вашего личного репозитория
- Или ID другой сборки
API для автоматизации
Запуск сборки через API
curl -X POST \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"project_id": 12345,
"commit_hash": "abc123",
"arch_id": 1,
"platform_id": 10
}' \
https://abf.io/api/v1/build_lists
Проверка статуса
curl -H "Authorization: Bearer YOUR_TOKEN" \
https://abf.io/api/v1/build_lists/12345
Советы по эффективной работе
1. Сначала проверяйте локально
rpmbuild -ba mypackage.spec
rpmlint ~/rpmbuild/RPMS/*/*.rpm
2. Используйте mock
Mock имитирует чистое окружение ABF (имя профиля смотрите в /etc/mock):
mock -r rosa-13.1-x86_64 --rebuild mypackage.src.rpm
3. Смотрите логи внимательно
Часто ошибка очевидна из последних строк лога.
4. Не спамьте сборками
Исправляйте ошибки локально, потом отправляйте на ABF.
Проверьте понимание
- Какие параметры нужно указать при запуске сборки?
- Что означает статус «Build is being published»?
- Где найти логи сборки?
- Куда попадают пакеты после успешной сборки?
- Как пересобрать пакет после исправления ошибки?
Далее: Разбор ошибок сборки