#!/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). Это ЯДРО-артефакт (без брендинга/подписи)."