From 9dad445d11c9ff14c6ca626e06389c83c2bffa2d Mon Sep 17 00:00:00 2001 From: glb_adm Date: Mon, 6 Jul 2026 22:15:51 +0000 Subject: [PATCH] =?UTF-8?q?build-release.sh:=20=D1=81=D0=B1=D0=BE=D1=80?= =?UTF-8?q?=D0=BA=D0=B0=20=D0=BF=D0=BE=D0=BB=D0=BD=D0=BE=D0=B3=D0=BE=20?= =?UTF-8?q?=D0=B4=D0=B5=D0=BF=D0=BB=D0=BE=D0=B9-=D0=B0=D1=80=D1=82=D0=B5?= =?UTF-8?q?=D1=84=D0=B0=D0=BA=D1=82=D0=B0=20(=D1=84=D1=80=D0=BE=D0=BD?= =?UTF-8?q?=D1=82=20npm=20+=20=D1=81=D0=B5=D1=80=D0=B2=D0=B5=D1=80=D0=BD?= =?UTF-8?q?=D1=8B=D0=B9=20vendor=20+=20=D0=BF=D0=B0=D1=82=D1=87=20+=20?= =?UTF-8?q?=D0=B2=D0=B5=D1=80=D1=81=D0=B8=D1=8F,=20=D0=BC=D0=B8=D0=BD?= =?UTF-8?q?=D1=83=D1=81=20=D0=B1=D1=80=D0=B5=D0=BD=D0=B4=D0=B8=D0=BD=D0=B3?= =?UTF-8?q?/=D0=BF=D0=BE=D0=B4=D0=BF=D0=B8=D1=81=D1=8C)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Проверено: артефакт 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, тест-стенд. --- build-release.sh | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100755 build-release.sh 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). Это ЯДРО-артефакт (без брендинга/подписи)."