Files
bedolaga-cabinet/scripts/deploy-cabinet.sh

56 lines
2.0 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/usr/bin/env bash
# Скачивает сборку из GitHub Release приватного репозитория и раскатывает её
# поверх продакшен-статики кабинета на VPS, с автоматическим бэкапом.
#
# Использование:
# ./deploy-cabinet.sh — последний релиз
# ./deploy-cabinet.sh v1.63.0 — конкретный релиз (откат на версию)
#
# Требует gh CLI, авторизованный токеном с правом Contents: Read-only на этот
# репозиторий. Токен лежит отдельно от скрипта — см. TOKEN_FILE ниже.
#
# Откат вручную при проблемах:
# rsync -a --delete "$DEST.bak/" "$DEST/"
set -euo pipefail
REPO="chillpadclub/bedolaga-cabinet"
DEST="/home/etkr4k/remnawave-bedolaga-telegram-bot/cabinet-dist"
ASSET="cabinet-dist.tar.gz"
TOKEN_FILE="$HOME/.cabinet-deploy-token"
TAG="${1:-}"
if [ ! -f "$TOKEN_FILE" ]; then
echo "Не найден файл токена: $TOKEN_FILE" >&2
echo "Создайте его: echo '<токен>' > $TOKEN_FILE && chmod 600 $TOKEN_FILE" >&2
exit 1
fi
export GH_TOKEN
GH_TOKEN="$(cat "$TOKEN_FILE")"
TMP="$(mktemp -d)"
trap 'rm -rf "$TMP"' EXIT
if [ -z "$TAG" ]; then
echo "Скачиваю последний релиз из $REPO..."
gh release download --repo "$REPO" --pattern "$ASSET" --dir "$TMP" --clobber
else
echo "Скачиваю релиз $TAG из $REPO..."
gh release download "$TAG" --repo "$REPO" --pattern "$ASSET" --dir "$TMP" --clobber
fi
echo "Распаковываю..."
mkdir -p "$TMP/dist"
tar -xzf "$TMP/$ASSET" -C "$TMP/dist"
echo "Бэкап текущей статики в $DEST.bak..."
rm -rf "$DEST.bak"
cp -r "$DEST" "$DEST.bak"
echo "Разворачиваю новую сборку в $DEST..."
rsync -a --delete --exclude '50x.html' "$TMP/dist/" "$DEST/"
echo "Готово. Откат при проблемах:"
echo " rsync -a --delete '$DEST.bak/' '$DEST/'"