Etersoft-build-utils/extra sources: различия между версиями
(Новая страница: «== Подготовка дополнительных исходных файлов == Современные языки разработки имеют множ…») |
Нет описания правки |
||
(не показаны 2 промежуточные версии этого же участника) | |||
Строка 8: | Строка 8: | ||
* npm install (NodeJS) | * npm install (NodeJS) | ||
* nuget restore (.NET Core) | * nuget restore (.NET Core) | ||
* compose (php) | * compose install (php) | ||
* cargo vendor (rust) | |||
* go vendor (go) | |||
Встроенные в инструмент получения исходного кода rpmgs из etersoft-build-utils возможности позволяют автоматически обновлять дополнительные исходные файлы и размещать их в пакете. | Встроенные в инструмент получения исходного кода rpmgs из etersoft-build-utils возможности позволяют автоматически обновлять дополнительные исходные файлы и размещать их в пакете. | ||
Строка 23: | Строка 25: | ||
Поддерживается только для проектов, обновляемых из исходного git-репозитория. После обновления (merge) с апстримом выполняется подгрузка submodules и их размещение в отдельном каталоге. | Поддерживается только для проектов, обновляемых из исходного git-репозитория. После обновления (merge) с апстримом выполняется подгрузка submodules и их размещение в отдельном каталоге. | ||
Дополнительно можно создать скрипт, вызываемый после обновления submodules | Дополнительно можно создать скрипт, вызываемый после обновления submodules: | ||
.gear/source-postupdate-hook <версия пакета> | .gear/source-postupdate-hook <версия пакета> | ||
== | == Предварительная загрузка модулей == | ||
Предварительная загрузка модулей | |||
Скрипт, вызываемый перед обновлением: | Скрипт, вызываемый перед обновлением: | ||
Строка 43: | Строка 43: | ||
tar: .gear/predownloaded-production | tar: .gear/predownloaded-production | ||
для поддерживаемых репозиториев модулей выполняется скачивание и упаковка модулей в режиме development или production соответственно. | |||
Скрипт, вызываемый после обновления: | |||
.gear/predownloaded-postinstall-hook <версия пакета> | .gear/predownloaded-postinstall-hook <версия пакета> | ||
=== npm === | |||
Предварительная загрузка модулей через менеджер пакетов npm: | |||
* при наличии ./package.json вызывается npm install [--production] | * при наличии ./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 <версия пакета> | .gear/source-postupdate-hook <версия пакета> |
Текущая версия от 20:33, 1 апреля 2024
Подготовка дополнительных исходных файлов
Современные языки разработки имеют множество подключаемых модулей, загружаемых из Интернета при подготовке проекта к сборке (установке). Как правило такие модули не поставляются в архиве с релизом. Также в проект могут быть подключены другие проекты средствами 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 <версия пакета>