Etersoft-build-utils/extra sources: различия между версиями

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


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


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


Скрипт, вызываемый перед обновлением:
Скрипт, вызываемый перед обновлением:
Строка 45: Строка 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 ==
== nuget ==

Версия от 01:49, 13 сентября 2021

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

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

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

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

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

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