diff --git a/build-release.sh b/build-release.sh new file mode 100755 index 0000000..35e3694 --- /dev/null +++ b/build-release.sh @@ -0,0 +1,40 @@ +#!/usr/bin/env bash +# Сборка полного деплой-артефакта форка Talk (f7_talk). +# Пока брендинг dev-f7 и подпись dev-appstore не подключены — даёт ЯДРО-артефакт, +# идентичный glb по коду (без брендинга). Запуск на nd3 из корня клона f7_talk. +set -euo pipefail + +VER="${1:?укажи версию, напр. 22.0.12.1}" +NODE=/home/foradmin/f7-build/node-v22.17.0-linux-x64/bin +REL_TAG="v22.0.12" # пиннированный апстрим-релиз для vendor +WORK="$(cd "$(dirname "$0")" && pwd)" +OUT="/home/foradmin/f7-build/artifact/spreed" + +echo "== 1. Фронтенд: npm ci + build (наша сборка = офиц. релиз, BUILD-f7.md) ==" +export PATH="$NODE:$PATH" NODE_OPTIONS=--max-old-space-size=8192 +npm ci --no-audit --no-fund +npm run build + +echo "== 2. Серверные PHP-зависимости (lib/Vendor) ==" +# Вариант по умолчанию: берём детерминированный vendor из пиннированного апстрим-релиза +# (composer.lock фиксирован → идентично composer install). При ИЗМЕНЕНИИ PHP-зависимостей +# нужен PHP 8.3 + Composer на сборочном хосте (на nd3 их нет — см. TODO пайплайна). +REL_DIR="/home/foradmin/f7-build/rel/spreed" +if [ ! -d "$REL_DIR/lib/Vendor" ]; then + echo "нет релизного vendor — скачай spreed-$REL_TAG.tar.gz из nextcloud-releases и распакуй в $REL_DIR"; exit 1 +fi + +echo "== 3. Сборка артефакта ==" +rm -rf "$OUT"; mkdir -p "$OUT" +cp -a "$REL_DIR/." "$OUT/" # база: серверная часть + vendor +cp -a "$WORK/js/." "$OUT/js/" # наши бандлы поверх +cp "$WORK/lib/Notification/Listener.php" "$OUT/lib/Notification/Listener.php" # наш патч ядра +cp "$WORK/appinfo/info.xml" "$OUT/appinfo/info.xml" +rm -f "$OUT/appinfo/signature.json" # апстрим-подпись невалидна — переподпишет dev-appstore + +echo "== 4. TODO (внешние входы, см. mail/033 dev-appstore, mail/034 dev-f7) ==" +echo " - брендинг dev-f7 (l10n/img/css/namespace/строки) → полный glb-идентичный вид" +echo " - подпись dev-appstore (свой CA) → NC integrity-check пройдёт" +echo " - смок-чеклист на ТЕСТ-стенде (не glb!) перед деплоем" + +echo "Готово: $OUT (версия $VER). Это ЯДРО-артефакт (без брендинга/подписи)."