Работа с кодом проектов и сборка проектов

Материал из Rosalab Wiki
Версия от 12:45, 3 марта 2014; D uragan (обсуждение | вклад) (Новая страница: «Категория:Сборочная среда ABF == Работа с Git-репозиториями == Код всех проектов ABF находи…»)

(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск


Работа с Git-репозиториями

Код всех проектов ABF находится в Git-репозиториях; для каждого проекта заводится свой репозиторий. Доступ к Git может осуществляться по протоколам HTTPS и SSH. Ссылка на репозиторий проекта <имя_проекта>, находящегося в группе <имя_группы>, имеет вид <URL_сервера_ABF>/<имя_группы>/<имя_проекта>.git. Например, чтобы склонировать по HTTPS репозиторий проекта 0ad группы import с сервера abf.rosalinux.ru на локальную машину с помощью консольного клиента Git, необходимо выполнить команду

git clone https://abf.rosalinux.ru/import/0ad.git

Для работы с git-репозиториями можно использовать консольные и графические клиенты Git, консольный клиент ABF, а также непосредственно веб-интерфейс ABF.

Для работы с Git-репозиторием проекта с использованием веб-интерфейса ABF, необходимо перейти на страницу проекта. По умолчанию будет активна вкладка "Код", отображающая файлы репозитория в ветке по умолчанию. В верхней части окна можно увидеть:

  • кнопку с надписью zip, при нажатии на которую вам будет предложено скачать архив репозитория в формате zip или tar.gz (для этогонеобходимо
  • ссылки для клонирования репозитория по HTTPS или SSH
  • рядом со ссылкой на репозиторий находится знак вопроса, при клике на который будет показана детальная справка по клонированию репозитория
  • меню "текущая ветка/тег", с помощью которой можно переключаться между ветками и тегами репозитория.
Код проекта

Ниже расположены четыре влкдаки:

  • Файлы - файлы репозитория в выбранной ветке. Вы можете кликнуть на любой файл и отредактировать его непосредственно в веб-интерфейсе, если он является текстовым. На этой же влкдаке показывается описание проетка, последний коммит в текущую ветку, а также кнопки для начала сборки проекта, его клонирования и создания запроса на изменение ("пул реквеста").
  • Коммиты - перечень всех изменений в текущей ветке репозитория
  • Ветки - имеющиеся ветки репозитория. Здесь можно сравнивать, удалять и создавать ветки. Обратите внимание, что нельзя удалить ветку по умолчанию (задается в настройках проекта)
  • Теги - имеющиеся теги проекта. Здесь можно просмотреть код, чоответсвующий тегу, или скачать его в архиве формата zip либо tar.gz.

Хранение бинарных файлов

При использовании ABF не рекомендуется хранить бинарные файлы непосредственно в Git-репозитории. Это приводит к излишнему росту размера репозитория и замедляет процесс его клонирования. В то же время для бинарных файлов многие преимущества Git неактуальны - например, нельзя просматривать разницу между одним и тем же файлом в разных ветках.

Для бинарных файлов в ABF предусмотрено использование специального Файлового хранилища ("File store") - отдельного файлового сервера, доступ к которому может осуществляться с помощью веб-интерфейса, REST API или консольного клиента ABF. Сервер файлового хранилища позволяет загружать файлы на хранение и извлекать файлы на основе их хэш-суммы (вычисляемой по алгоритму SHA1).

Файловое хранилище ABF

В Git-репозитории проектов ABF вместо бинарных файлов можно помещать специальный файл с названием .abf.yml в формате YAML, содержащим перечень бинарных файлов и их хэш-суммы. Файлы должны быть перечислены в секции sources, например:

sources:
  "myfile1.tar.gz": e80fd7a3d85e3a75e88780d36c80f672df8ddf64
  "myfile2.gif": a96c913906f6d36c30fa70f8c6ad259dbcfb0a98

При сборке проекта на ABF, сборочный скрипт проанализирует файл .abf.yml и извлечет с файлового хранилища все файлы, необходимые для сборки.

Поскольку файл .abf.yml хранится в Git-репозитории, по для него отслеживается история изменений. Поскольку при этом старые версии бинарных файлов не удаляются из файлового хранилища, то вы можете просматривать историю изменений этих файлов и скачивать их версии, соответсвующие той или иной ветке, тегу или коммиту.

Обратите внимание, что консольный клиент ABF при выполнении команды "abf put" автоматически загружает бинарные файлы на файловое хранилище и прописывает ссылки на них в .abf.yml. При создании проектов на основе SRPM-пакетов, бинарные файлы также автоматически помещаются в файловое хранилище.

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