Etersoft-build-utils/extra sources: различия между версиями
Fiersik (обсуждение | вклад) м (→git submodules) |
Нет описания правки |
||
Строка 5: | Строка 5: | ||
Примеры: | Примеры: | ||
* .gitsubmodules | |||
* npm install (NodeJS) | |||
* nuget restore (.NET Core) | |||
* compose install (php) | |||
* cargo vendor (rust) | |||
* go vendor (go) | |||
Встроенные в инструмент получения исходного кода rpmgs из etersoft-build-utils возможности позволяют автоматически обновлять дополнительные исходные файлы и размещать их в пакете. | Встроенные в инструмент получения исходного кода rpmgs из etersoft-build-utils возможности позволяют автоматически обновлять дополнительные исходные файлы и размещать их в пакете. | ||
Строка 79: | Строка 79: | ||
.gear/source-postupdate-hook <версия пакета> | .gear/source-postupdate-hook <версия пакета> | ||
= Примеры = | |||
* https://packages.altlinux.org/ru/sisyphus/srpms/node-canvas/specfiles/ | |||
* https://packages.altlinux.org/ru/sisyphus/srpms/rest-server/specfiles/ | |||
* https://packages.altlinux.org/ru/sisyphus/srpms/snx-rs/specfiles/ | |||
[[Категория:Devel]] | [[Категория:Devel]] | ||
[[Категория:Packaging]] | [[Категория:Packaging]] |
Текущая версия от 10:08, 3 июня 2025
Подготовка дополнительных исходных файлов
Современные языки разработки имеют множество подключаемых модулей, загружаемых из Интернета при подготовке проекта к сборке (установке). Как правило такие модули не поставляются в архиве с релизом. Также в проект могут быть подключены другие проекты средствами 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: .gear/@name@-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 <версия пакета>