Краткое руководство по работе в сборочной среде ABF

Материал из Rosalab Wiki
Перейти к: навигация, поиск

Содержание

Определения

  • ABF — система для разработки и управления жизненным циклом дистрибутивов: от исходного кода до ISO-образов.
  • Проект — программное обеспечение, документация, темы оформления с мета-информацией о нем, готовое для сборки и распространения в виде пакета;
  • Группа — объединение пользователей для работы над совместными проектами. Позволяет управлять правами участниками сразу на нескольких проектах, принадлежащих группе.
  • Платформа — набор репозиториев, представленных в системе как единое целое. Используется для выпуска разных продуктов на одной группе пакетов.
  • Репозиторий — набор проектов, объединенных по определенным критериям: основные, дополнительные, несвободные и т.д.
  • Продукт — собранный на базе платформы дистрибутив ОС (ISO образ).

Регистрация

Для начала работы с ABF, необходимо пройти регистрацию в системе

Проекты

Проект — программное обеспечение, документация, темы оформления с мета-информацией о нем, готовое для сборки и распространения в виде пакета.

Создание нового проекта

Перейдите на страницу - Проекты и нажмите вкладку Новый проект (также можно создать проект, воспользовавшись кнопкой "Создать проект" на главной странице).
Список проектов.png
Будет отображена следующая страница:
Создание проекта.png

На странице создания проекта необходимо заполнить следующие поля:

  • Название — имя проекта (без пробелов);
  • Описание — краткое описание проекта (опциально);
  • Владелец — позволяет выбрать, кто будет владельцем проекта: вы или группа;
Примечание: возможность создать проект для группы есть у создателя группы или ее администратора.
  • Видимость — будет ли проект публичным или приватным(доступен только ограниченно числу пользователей);

Вы можете импортировать SRPM пакет сразу при создании проекта, воспользовавшись кнопкой "Загрузить" и выбрать SRPM файл для загрузки. Нажмите кнопку "Сохранить" и проект будет создан. Исходный код пакета, если он был успешно распакован, будет доступен в гит-репозитории в ветке import через некоторое время.

Клонирование проекта

Можно копировать уже существующий в системе проект, воспользовавшись функцией клонирования.

Для этого введите в поиск название проекта, который хотите найти.
Поиск.png
Выбрав интересующий проект в результатах поиска, нажмите на его имени. Перед вами откроется сводная информация о проекте.
Страница проекта.png

Чтобы клонировать исходный код проекте к себе, просто воспользуйтесь адресом git-репозитория, указанной на строке чуть ниже меню(если вы не являетесь участником проекта или его владельцем, то данная ссылка будет представлять возможность только получить исходный код, но не даст вернуть его изменения обратно).

Для создание форка проекта нажмите на кнопку "Клонировать и редактировать". Система попросит подтвердить это действие и в случае утвердительного ответа вы получите полную независимую копию этого проекта в свое распоряжение и сможете вносить в него свои изменения, а также собирать его в свой репозиторий.

Увидеть свою копию данного проекта можно на вкладке Проекты, где отображаются все ваши проекты, а также проекты, в которых вы участвуете.

Сборка проекта

Сборка проекта - это превращение его исходных кодов в пакет, который затем может быть размещен в репозитории.

Перейдите на вкладку Проекты и выберите проект, который вы хотите собрать.
Список проектов.png
Нажмите на его имени, затем перейдите на вкладку Сборки.
Сборки.png
Чтобы собрать новый проект, нажмите на вкладку Новая сборка.
Новая сборка.png

Для сборки проекта необходимо указать следующие параметры:

  • версия проекта — версии для выбора формируются следующим образом: последние коммиты каждой ветки git-репозитория проекта представлены как latest_<название ветки>, также в списке доступных версий есть все теги git-репозитория;
  • платформа — это набор репозиториев, содержащих множество проектов. Платформами, к примеру, являются rosa2012lts и cooker. Пакет может быть одновременно собран под несколько платформ, если он собирается в персональный репозиторий пользователя;
  • тип обновления — параметр, указывающий важность обновления проекта для конечных пользователей. Может принимать значения: security, bugfix, enhancement, recommended и newpackage;
  • пересборка с зависимостями - определяет, будет ли пакет собран с пересборкой обратных зависимостей или нет. Данный механизм пересобирает все пакеты, зависящие от собираемого на этапе сборки и призван обеспечить полную пересобираемость репозитории на самом себе;
  • Архитектура - архитектура для сборки проекта. Может быть выбрана как одна, так и несколько. Типовыми для Росы являются i586 и x86_64;
  • репозиторий для сохранения — репозиторий, куда будут опубликованы пакеты в случае успешной сборки. Для того, чтобы собирать проект в репозиторий платформы, ваш проект должен быть добавлен администратором платформы. В случае выбора репозитория основной платформы список платформ, для которых собирается, будет уменьшен до одного, которому и принадлежит этот репозиторий, автоматически;
  • включенные репозитории - параметры сборки, определяющие, какие репозитории выбранной платформы будут использованы для сборки проекта. Таким образом можно собирать пакет, подключив, например, только main, или main и contrib;
  • автоматическая публикация - в случае успешной сборки публиковать ли пакет автоматически в репозитории. Если параметр не выбран, проект будет собран, но не опубликован, при этом опубликовать его можно и позднее.

После настройки всех параметров нажмите на кнопку Собрать и проект отправится на сборку, о чем будет показано уведомление.

Мониторинг сборки

Наблюдать за сборками, доступными для вас, можно на вкладке Мониторинг задач.
Мониторинг сборки.png

На данной странице отображаются все собираемые задания, к которым у вас есть доступ.

Основные статусы заданий на сборку:

  • в очереди — проект ожидает своей очереди на сборку;
  • собирается — начата сборка проекта;
  • ошибка сборки — по каким-то причинам сборка проекта завершена с ошибкой, подробные сведения можно посмотреть в логах сборки, которые находятся по адреса контейнера;
  • собран — пакет был успешно собран и готов для публикации в репозиторий;
  • публикуется — пакет поставлен в очередь на публикацию в репозиторий;
  • ошибка публикации — во время публикации произошла неожиданная ошибка. Можно попробовать снова опубликовать проект чуть позже;
  • опубликован — пакет успешно размещен в репозитории, указанном в сборочном задании.


С помощью фильтров, доступных на странице, можно отобрать задания по определенным критериям.

Нажав на ID задания, можно перейти к подробной информации о конкретном сборочном задании:
Сборочное задание.png

Выводится подробная информация о сборочном задания, включая автора сборки, параметрах, собранных пакетах, текущем статусе, дате последнего получения информация.

По окончании сборки, на этой странице становятся доступны журналы с информацией информация о процессе сборки, включая подробные логи каждого этапа.

В случае, если пакет был собран, но не опубликован, в строке Путь до контейнера будет указан адрес контейнера, где хранятся собранные пакеты (если были собраны). Сам контейнер представляет собой репозиторий, который можно подключить и проверить пакеты до публикации в основном репозитории.

Работа с исходным кодом проекта с помощью Git

Весь исходные код проекта хранится в git-репозитории. Для работы потребуется адрес репозитория, который можно найти на странице конкретного проекта чуть ниже меню. О том, как найти проект, рассказано в разделе Создание нового проекта
Страница проекта.png

Мы рекомендуем работать с git через протокол SSH, загрузив на сервер ABF публичную часть ключа, с помощью которого будет осуществляться доступ пользователя к git-репозиториям (см. описание секции "SSH ключи" на странице Пользователи ABF - создание, настройка, права.

Для работы с которым применяются следующие команды:

  • Получение исходного кода:
git clone <адрес репозитория>
Будет запрошен пароль вашей учетной записи(в случае, если проект открытый, можно ввести пустой пароль).
  • Переключение между ветками:
git checkout <название ветки>
  • Фиксация изменений:
git commit -a -m “Описание коммита”
  • Добавление новых файлов в проект
git add --all
  • Загрузка изменений на сервер:
git push
Будет запрошен пароль вашей учетной записи (для внесение изменений также требуется, чтобы у вас был доступ к изменению проекта, иначе изменения загружены не будут даже в случае успешной аутентификации)
  • Получение изменений с сервера:
git pull


Данных команд достаточно для базовой работы с кодом проекта.


Idea.png
Примечание
если вы подключаетесь к Git через HTTPS и получили ошибку вида:
error: Peer certificate cannot be authenticated with given CA certificates
добавьте перед вызовом команды 'env GIT_SSL_NO_VERIFY=true', например:
env GIT_SSL_NO_VERIFY=true git clone


Особенности использования git через HTTPS

  • Чтобы не вбивать каждый раз пароль при git push, можно прописать его в файл ~/.netrc следующим образом:
machine abf.rosalinux.ru
    login ваш_логин
    password ваш_пароль
  • Если вы подключаетесь к Git через HTTPS и получили ошибку вида:
error: RPC failed; result=22, HTTP code = 411

то выполните команду

git config http.postBuffer 524288000

и повторите запрос, который привел к этой ошибке

Если не хотите прописывать это для каждого нового репозитория, задайте эту же опцию глобально:

git config --global http.postBuffer 524288000


Документация по теме «Сборочная среда ABF»
Сборочная среда ABF • Краткое руководство по работе в сборочной среде ABF • ABF: Руководство пользователя • ABF: Руководство администратора