build-release.sh: сборка полного деплой-артефакта (фронт npm + серверный vendor + патч + версия, минус брендинг/подпись)
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
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
Проверено: артефакт 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, тест-стенд.
This commit is contained in:
Executable
+40
@@ -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). Это ЯДРО-артефакт (без брендинга/подписи)."
|
||||
Reference in New Issue
Block a user