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 <версия пакета>
Предварительная загрузка модулей
Скрипт, вызываемый перед обновлением:
.gear/predownloaded-preinstall-hook <версия пакета>
Если создан каталог
.gear/predownloaded-development
или
.gear/predownloaded-production
и в rules вписано правило
tar: .gear/predownloaded-development
или
tar: .gear/predownloaded-production
для поддерживаемых репозиториев модулей выполняется скачивание и упаковка модулей в режиме development или production соответственно.
Скрипт, вызываемый после обновления:
.gear/predownloaded-postinstall-hook <версия пакета>
npm
Предварительная загрузка модулей через менеджер пакетов npm:
- при наличии ./package.json вызывается npm install [--production]
Пример пакета: https://packages.altlinux.org/ru/sisyphus/srpms/node-canvas
composer
Предварительная загрузка модулей через менеджер пакетов composer:
- при наличии ./composer.json вызывается composer install [--no-dev]
Пример пакета: https://packages.altlinux.org/ru/sisyphus/srpms/composer
go
Предварительная загрузка модулей через менеджер пакетов go:
- при наличии ./go.mod вызывается go mod vendor
Пример пакета: https://packages.altlinux.org/ru/sisyphus/srpms/chisel
cargo
Предварительная загрузка модулей через менеджер пакетов cargo:
- при наличии ./Cargo.lock вызывается cargo vendor
Пример пакета: https://packages.altlinux.org/ru/sisyphus/srpms/maturin
nuget
В процессе реализации
Любой исходный архив
Скрипт, вызываемый после загрузки и коммита архива:
.gear/source-postupdate-hook <версия пакета>