Girar/Internals: различия между версиями

Материал из ALT Linux Wiki
(Да допускается, допускается — уже года 3 как минимум, а то и больше.)
 
(не показаны 2 промежуточные версии 2 участников)
Строка 1: Строка 1:
{{stub}}
{{stub}}
Есть два главных компонента системы: <tt>girar</tt> и <tt>girar-builder</tt>.
[[Категория:git.alt]]
 
Система состоит из двух основных компонент: <tt>girar</tt> и <tt>girar-builder</tt>.


=== Girar ===
=== Girar ===
Строка 29: Строка 31:


В каталоге [http://git.altlinux.org/people/ldv/packages/?p=girar-builder.git;a=tree;f=remote girar-builder/remote/] находятся программы,
В каталоге [http://git.altlinux.org/people/ldv/packages/?p=girar-builder.git;a=tree;f=remote girar-builder/remote/] находятся программы,
которые выполняются на удалённных узлах.  В частности, для сборки
которые выполняются на удалённых узлах.  В частности, для сборки
пакетов на удалённом узле выполняется программа [http://git.altlinux.org/people/ldv/packages/?p=girar-builder.git;a=blob;f=remote/gb-remote-build girar-builder/remote/gb-remote-build].
пакетов на удалённом узле выполняется программа [http://git.altlinux.org/people/ldv/packages/?p=girar-builder.git;a=blob;f=remote/gb-remote-build girar-builder/remote/gb-remote-build].


Строка 65: Строка 67:
К сожалению, <tt>srpm</tt> не позволяют реализовать такую проверку достоверно.
К сожалению, <tt>srpm</tt> не позволяют реализовать такую проверку достоверно.
Реализованная проверка наследования <tt>%changelog</tt>'ов не даёт гарантии наследования сборки.
Реализованная проверка наследования <tt>%changelog</tt>'ов не даёт гарантии наследования сборки.
По этой причине сборка пакета из <tt>srpm</tt> после сборки этого пакета из [[git]]
не допускается.


=== Источники ===
=== Источники ===

Текущая версия от 11:59, 23 апреля 2021

Stub.png
Данная страница находится в разработке.
Эта страница ещё не закончена. Информация, представленная здесь, может оказаться неполной или неверной.

Система состоит из двух основных компонент: girar и girar-builder.

Girar

girar (git)
реализует ssh-интерфейс к git.altlinux.org.

Обрабатывает команды, описанные в Git.alt/Справочник и формирует задания для сборки.

Girar Builder

girar-builder (git)
обрабатывает сформированные задания на сборку.
Задание
это каталог со специальной структурой (ближайшая аналогия -- каталог /proc/$pid).

Структура каталога описана в файле girar-builder/TASK. Это описание может быть неполным или немного неточным, но оно дает правильное первоначальное представление.

Команды на формирование задания описаны в справочнике по git.alt (команды task и build).

Задание состоит из нескольких стадий, которые выполняются в режиме "до первой ошибки" (то есть, когда одна из стадий завершается с ошибкой, остальные стадии не выполняются). Завершающие стадии обработки задания -- это закрытие ошибок в bugzilla и публикация обновлённых репозиториев.

Процедура обработки задания находится в girar-builder/gb-run-task.

Процедура сборки задания

Сейчас усилиями at@ и ldv@ реализована архитектура girar-builder + удалённые сборочные узлы. girar-builder располагается на выделенном сервере и выполняет централизованные действия.

В каталоге girar-builder/remote/ находятся программы, которые выполняются на удалённых узлах. В частности, для сборки пакетов на удалённом узле выполняется программа girar-builder/remote/gb-remote-build.

Характерной особенностью girar-builder является то, что центральный сервер не использует хешер напрямую. Хешер находятся на удалённых узлах. Когда нужно выполнить что-то с пмощью хешера, например, собрать пакет или проверить установку пакета, то girar-builder выполняет соответствующие действия на удалённых узлах.

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

Например, существуют узлы с именами типа:

  • build_sisyphus_i586
  • build_sisyphus_x86_64
  • build_50_i586
  • build_50_x86_64

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

Есть ещё одна особенность: на удалённые узлы приходится целиком копировать временный репозитарий. Сейчас этот репозитарий делается симлинками. Это накладывает дополнительное условие: репозитарий на girar-builder и репозитарий на удалённых узлах должен быть доступен по одному и тому же пути.

Сборка из source rpm

Недавно была добавлена сборка из source rpm через girar (команда build srpm, анонс: http://lists.altlinux.org/pipermail/devel/2009-May/170472.html).

При сборке из source rpm происходят проверки, запрещающие сборку, если предыдущая версия была собрана из gear.

Обоснование данной проверки: Изначально предполагалось, что переход на сборку из git позволит проверять наследование сборки (от предыдущей сборки) естественным путём, что упрощает совместную разработку и NMU.

К сожалению, srpm не позволяют реализовать такую проверку достоверно. Реализованная проверка наследования %changelog'ов не даёт гарантии наследования сборки.

Источники

Описание скомпилировано из: