Etersoft-build-utils/extra sources
Подготовка дополнительных исходных файлов
Современные языки разработки имеют множество подключаемых модулей, загружаемых из Интернета при подготовке проекта к сборке (установке). Как правило такие модули не поставляются в архиве с релизом. Также в проект могут быть подключены другие проекты средствами 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 <версия пакета>