Краткое руководство по работе в сборочной среде ABF
Содержание
Определения
- ABF — система для разработки и управления жизненным циклом дистрибутивов: от исходного кода до ISO-образов.
- Проект — программное обеспечение, документация, темы оформления с мета-информацией о нем, готовое для сборки и распространения в виде пакета;
- Группа — объединение пользователей для работы над совместными проектами. Позволяет управлять правами участниками сразу на нескольких проектах, принадлежащих группе.
- Платформа — набор репозиториев, представленных в системе как единое целое. Используется для выпуска разных продуктов на одной группе пакетов.
- Репозиторий — набор проектов, объединенных по определенным критериям: основные, дополнительные, несвободные и т.д.
- Продукт — собранный на базе платформы дистрибутив ОС (ISO образ).
Проекты
Проект — программное обеспечение, документация, темы оформления с мета-информацией о нем, готовое для сборки и распространения в виде пакета.
Создание нового проекта
Перейдите на страницу - Проекты и нажмите вкладку Новый проект (также можно создать проект, воспользовавшись кнопкой "Создать проект" на главной странице).
Будет отображена следующая страница:
На странице создания проекта необходимо заполнить следующие поля:
- Название — имя проекта (без пробелов);
- Описание — краткое описание проекта (опциально);
- Владелец — позволяет выбрать, кто будет владельцем проекта: вы или группа;
- Примечание: возможность создать проект для группы есть у создателя группы или ее администратора.
- Видимость — будет ли проект публичным или приватным(доступен только ограниченно числу пользователей);
Вы можете импортировать SRPM пакет сразу при создании проекта, воспользовавшись кнопкой "Загрузить" и выбрать SRPM файл для загрузки. Нажмите кнопку "Сохранить" и проект будет создан. Исходный код пакета, если он был успешно распакован, будет доступен в гит-репозитории в ветке import через некоторое время.
Клонирование проекта
Можно копировать уже существующий в системе проект, воспользовавшись функцией клонирования.
Для этого введите в поиск название проекта, который хотите найти.
Выбрав интересующий проект в результатах поиска, нажмите на его имени. Перед вами откроется сводная информация о проекте.
Чтобы клонировать исходный код проекте к себе, просто воспользуйтесь адресом git-репозитория, указанной на строке чуть ниже меню(если вы не являетесь участником проекта или его владельцем, то данная ссылка будет представлять возможность только получить исходный код, но не даст вернуть его изменения обратно).
Для создание форка проекта нажмите на кнопку "Клонировать и редактировать". Система попросит подтвердить это действие и в случае утвердительного ответа вы получите полную независимую копию этого проекта в свое распоряжение и сможете вносить в него свои изменения, а также собирать его в свой репозиторий.
Увидеть свою копию данного проекта можно на вкладке Проекты, где отображаются все ваши проекты, а также проекты, в которых вы участвуете.
Сборка проекта
Сборка проекта - это превращение его исходных кодов в пакет, который затем может быть размещен в репозитории.
Перейдите на вкладку Проекты и выберите проект, который вы хотите собрать.
Нажмите на его имени, затем перейдите на вкладку Сборки.
Чтобы собрать новый проект, нажмите на вкладку Новая сборка.
Для сборки проекта необходимо указать следующие параметры:
- версия проекта — версии для выбора формируются следующим образом: последние коммиты каждой ветки git-репозитория проекта представлены как latest_<название ветки>, также в списке доступных версий есть все теги git-репозитория;
- платформа — это набор репозиториев, содержащих множество проектов. Платформами, к примеру, являются Mandriva2010.2, 2011, Cooker. Пакет может быть одновременно собран под несколько платформ, если он собирается в персональный репозиторий пользователя;
- тип обновления — параметр, указывающий важность обновления проекта для конечных пользователей. Может принимать значения: security, bugfix, enhancement, recommended и newpackage;
- пересборка с зависимостями - определяет, будет ли пакет собран с пересборкой обратных зависимостей или нет. Данный механизм пересобирает все пакеты, зависящие от собираемого на этапе сборки и призван обеспечить полную пересобираемость репозитории на самом себе;
- Архитектура - архитектура для сборки проекта. Может быть выбрана как одна, так и несколько. Типовыми для Mandriva являются i586 и x86_64;
- репозиторий для сохранения — репозиторий, куда будут опубликованы пакеты в случае успешной сборки. Для того, чтобы собирать проект в репозиторий платформы, ваш проект должен быть добавлен администратором платформы. В случае выбора репозитория основной платформы список платформ, для которых собирается, будет уменьшен до одного, которому и принадлежит этот репозиторий, автоматически;
- включенные репозитории - параметры сборки, определяющие, какие репозитории выбранной платформы будут использованы для сборки проекта. Таким образом можно собирать пакет, подключив, например, только main, или main и contrib;
- автоматическая публикация - в случае успешной сборки публиковать ли пакет автоматически в репозитории. Если параметр не выбран, проект будет собран, но не опубликован, при этом опубликовать его можно и позднее.
После настройки всех параметров нажмите на кнопку Собрать и проект отправится на сборку, о чем будет показано уведомление.
Мониторинг сборки
Наблюдать за сборками, доступными для вас, можно на вкладке Мониторинг задач.
На данной странице отображаются все собираемые задания, к которым у вас есть доступ.
Основные статусы заданий на сборку:
- в очереди — проект ожидает своей очереди на сборку;
- собирается — начата сборка проекта;
- ошибка сборки — по каким-то причинам сборка проекта завершена с ошибкой, подробные сведения можно посмотреть в логах сборки, которые находятся по адреса контейнера;
- собран — пакет был успешно собран и готов для публикации в репозиторий;
- публикуется — пакет поставлен в очередь на публикацию в репозиторий;
- ошибка публикации — во время публикации произошла неожиданная ошибка. Можно попробовать снова опубликовать проект чуть позже;
- опубликован — пакет успешно размещен в репозитории, указанном в сборочном задании.
С помощью фильтров, доступных на странице, можно отобрать задания по определенным критериям.
Нажав на ID задания, можно перейти к подробной информации о конкретном сборочном задании:
Выводится подробная информация о сборочном задания, включая автора сборки, параметрах, собранных пакетах, текущем статусе, дате последнего получения информация.
В случае, если пакет не собрался или был собран, но не опубликован, в строке Путь до контейнера будет указан адрес контейнера, где хранится вся информация о процессе сборки, включая подробные логи каждого этапа. Так же хранятся собранные пакеты (если были собраны). Сам контейнер представляет собой репозиторий, который можно подключить и проверить пакеты до публикации в основном репозитории.
Работа с исходным кодом проекта с помощью Git
Весь исходные код проекта хранится в git-репозитории. Для работы потребуется адрес репозитория, который можно найти на странице конкретного проекта чуть ниже меню. О том, как найти проект, рассказано в разделе Создание нового проекта
Для работы с которым применяются следующие команды:
- Получение исходного кода:
git clone <адрес репозитория>
- Будет запрошен пароль вашей учетной записи(в случае, если проект открытый, можно ввести пустой пароль).
- Переключение между ветками:
git checkout <название ветки>
- Фиксация изменений:
git commit -a -m “Описание коммита”
- Добавление новых файлов в проект
git add --all
- Загрузка изменений на сервер:
git push
- Будет запрошен пароль вашей учетной записи (для внесение изменений также требуется, чтобы у вас был доступ к изменению проекта, иначе изменения загружены не будут даже в случае успешной аутентификации)
- Получение изменений с сервера:
git pull
если вы получили ошибку вида:
error: Peer certificate cannot be authenticated with given CA certificates
env GIT_SSL_NO_VERIFY=true git clone
если вы получили ошибку вида:
error: RPC failed; result=22, HTTP code = 411
и повторите запрос, который привел к этой ошибке
Данных команд достаточно для базовой работы с кодом проекта.