Управление проектами

Проекты - это объединения git репозиториев, результат которого - это репозиторий rpm пакетов (подписанный и не подписанный).

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

Подписанный репозиторий используется для публикации rpm пакетов на внешний сервер (внешний репозиторий).

Список проектов

Список проектов пустой

Список проектов

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

Новый проект

  • Название проекта - уникальное название проекта, оно будет содержаться в названии будущего репозитория, поэтому стоит подходить к названию с умом.
  • Описание - краткое описание
  • Не публиковать отладочные пакеты и исходные коды - при установленном флажке в подписанный репозиторий не публикуются пакеты src.rpm, debuginfo, debugsource. Если флажок не установлен, то подписывается и публикуется все. Флажок для проприетарного ПО
  • Выберите конфигурацию окружения сборки для проекта - выбирается конфигурация сборки, выбирается один раз при создании проекта и больше потом не меняется. Можно только создать новый проект с другой конфигурацией.

Пример выбора конфигурации. Имеется поле фильтрации.

Выбор конфигурации

Информация о проекте

Проектная информация

Добавить git репозиторий к проекту - позволяет добавить к проекту один из существующих git репозиториев.

Необходимо из выпадающего списка выбрать один - нажать кнопку "Добавить".

Тк выглядит добавленный в проект новый git репозиторий. Добавленый репозиторий

Пустые репозиторий без исходников добавить в проект нельзя!

Редактировать конфигурацию сборки - локальная конфигурация сборочного окружения для mock.

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

Конфигурация сборки

Добавить внутренний репозиторий из другого проекта - позволяет связать проекты при сборке, т.е внутренний неподписанный репозиторий одного проекта, становится доступен для сборки текущего.

Линк на другой проект

Список всех пакетов - список пакетов, собранных для данного проекта (неподписанных пакетов)

Список пакетов

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

Список сборок проектов - отображается список сборок, принадлежащих проекту.

В данном списке можно получить информацию о каждой сборке. Детальнее о сборках

Подписать - подписать gpg ключом файлы репозитория проекта и опубликовать их в отдельном репозитории

Как происходит подпись:

Подпись

Подписывание требует наличие gpg ключей в папке keys.

Данные ключи создаются при установке скриптом ./install-key из папки gen-scripts

Параметры запуска:

cd gen-scripts
./install-key UserName UserEmail 316224000 StrongSignPassword
  • UserName - это имя владельца ключа
  • UserEmail - почта владельца ключа
  • 316224000 - число секунд жизни ключа. Высчитывается по формуле: пусть нужен ключ на 2 года значит число будет: 2 * 366 * 24 * 60 * 60 = 63244800, а 316224000 = 10 лет
  • StrongSignPassword - пароль для ключа

В результате будет сгенерирован gpg ключ приватный и публичный в папке keys, желательно не потерять их.

Просмотр подписанного репозитория - после подписи в проекте появится подписанный репозиторий с пакетами и сгенерированным файлом repoview. Т.е в таком виде как репозиторий будет выглядеть при публикации в интернете.

Подписанный репозиторий

Установить адрес подписанного репозитория - установить адрес подписанного репозитория, т.е установить url, данная информация необходима для корректного формирования шапки:

echo -e "[project_test1]
name=project_test1
baseurl=https://test.repo.tst/repo1/
enabled=1
gpgkey=https://test.repo.tst/repo1/project_test1-gpg-key
gpgcheck=1" > /etc/yum.repos.d/project_test1.repo

т.е устанавливается корректный url будущего удаленного репозитория.

Удалить проект - удаляется весь проект, подписанные и неподписанные репозитории, сборки.

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

Пример удаления

Для удаления - нужно перевести в активное состояние флажок и нажать кнопку "Удалить". Без установки флажка - удаление не произойдет. Такая защита от случайного удаления.

Список действий над репозиторием проекта

Напротив каждого git репозитория, добавленного в проект есть список действий:

Расширенный список действий

Слева направо: * удалить git репозиторий из проекта (при этом rpm пакеты в проекте, сборки - остаются) * обновить исходники проекта - если такой значок появился, значит в git репозиторий в ветку master были внесены изменения и в текущем проекте неактуальные исходники. Когда исходники актуальны список действий выглядит так:

  • запустить сборку - запускается сборка проекта в фоне. Отображается страница, которая обновляется каждые 5 секунд (обновление можно остановить или запустить опять)

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

Во время сборки отображается лог файл процесса сборки. Результат сборки можно посмотреть на странице сборки

  • указать файл spec для проекта и git репозитория - если в гит репозитории несколько spec файлов, то будет подхватываться первый попавшийся файл, чтоб избежать такого поведения можно точно указать какой файл использовать

Установка spec файла

  • отобразить список сборок для проекта и текущего git репозитория

Если нажать на имя git репозитория в списке, то можно просмотреть его содержимое, т.е список файлов:

Список файлов репозитория