Etersoft-build-utils/extra sources

Материал из ALT Linux Wiki

Подготовка дополнительных исходных файлов

Современные языки разработки имеют множество подключаемых модулей, загружаемых из Интернета при подготовке проекта к сборке (установке). Как правило такие модули не поставляются в архиве с релизом. Также в проект могут быть подключены другие проекты средствами git submodules.

Примеры:

* .gitsubmodules
* npm install (NodeJS)
* nuget restore (.NET Core)
* compose install (php)
* cargo vendor (rust)
* go vendor (go)

Встроенные в инструмент получения исходного кода rpmgs из etersoft-build-utils возможности позволяют автоматически обновлять дополнительные исходные файлы и размещать их в пакете.

git submodules

При использовании .git репозитория можно упаковать submodules из .gitsubmodules в отдельный каталог.

Создать каталог

.gear/@name@-postsubmodules

и в rules вписать

tar:.*-postsubmodules

Поддерживается только для проектов, обновляемых из исходного git-репозитория. После обновления (merge) с апстримом выполняется подгрузка submodules и их размещение в отдельном каталоге.

Дополнительно можно создать скрипт, вызываемый после обновления submodules следующим образом: .gear/source-postupdate-hook <версия пакета>

npm

Предварительная загрузка модулей через менеджер пакетов npm:

Скрипт, вызываемый перед обновлением:

.gear/predownloaded-preinstall-hook <версия пакета>

Если создан каталог

.gear/predownloaded-development

или

.gear/predownloaded-production

и в rules вписано правило

tar: .gear/predownloaded-development

или

tar: .gear/predownloaded-production

скрипт, вызываемый после обновления:

.gear/predownloaded-postinstall-hook <версия пакета>
  • при наличии ./package.json вызывается npm install [--production]

nuget

TODO: что ещё поддерживается? nuget

Любой исходный архив

Скрипт, вызываемый после загрузки и коммита архива:

.gear/source-postupdate-hook <версия пакета>