Files
f7_talk/build-release.sh
T
glb_adm 9dad445d11
Type checking / changes (push) Has been cancelled
Type checking / test (push) Has been cancelled
Type checking / typescript-summary (push) Has been cancelled
Node tests / changes (push) Has been cancelled
Node tests / test (push) Has been cancelled
Node tests / test-summary (push) Has been cancelled
build-release.sh: сборка полного деплой-артефакта (фронт npm + серверный vendor + патч + версия, минус брендинг/подпись)
Проверено: артефакт 37МБ собирается — js(наши)+lib/Vendor(vendor: CuyZ/Firebase/Psr)+Listener-патч+
version 22.0.12.1, apstream-подпись снята. Пробел: PHP/Composer для смены PHP-зависимостей (nd3 без PHP —
пока vendor из пиннированного релиза, детерминированно). Внешние входы: брендинг dev-f7, подпись dev-appstore, тест-стенд.
2026-07-06 22:15:51 +00:00

41 lines
2.6 KiB
Bash
Executable File

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