supersam/deploy.sh

33 lines
1.8 KiB
Bash
Executable File

#!/bin/bash
# SuperSam — прод-деплой фронта.
# Реальная схема: /opt/deployer (порт 9900) на push в main пересобирает образ
# из compose-контекста (/opt/supersam-dev, ветка dev) и пересоздаёт контейнер.
# Поэтому docker cp в контейнер ЖИВЁТ ДО ПЕРВОГО ПЕРЕСОЗДАНИЯ — правки должны
# попадать в git (ветка dev) и собираться в образ.
set -e
SRC=/opt/supersam-dev
echo "── 1. подтянуть dev ──"
cd "$SRC"
git fetch gitea-public dev
git merge --ff-only gitea-public/dev
git log --oneline -1
echo "── 2. пересобрать образ и пересоздать контейнер ──"
cd /opt/supersam
docker compose -f docker-compose.app.yml up -d --build
echo "── 3. проверка ──"
IDX=$(docker exec supersam-app sh -c 'grep -o "assets/index-[A-Za-z0-9_.-]*\.js" /usr/share/caddy/index.html | head -1')
DP=$(docker exec supersam-app sh -c "grep -o 'DashboardPage-[A-Za-z0-9_-]*\.js' /usr/share/caddy/$IDX | sort -u | head -1")
echo "index=$IDX dashboard=$DP"
echo -n "маркер «Автодозвон»: "
docker exec supersam-app sh -c "grep -c Автодозвон /usr/share/caddy/assets/$DP" || true
echo -n "маркер «шаблоны самовывоза»: "
docker exec supersam-app sh -c "grep -rl sms_text_template_pickup /usr/share/caddy/assets/*.js | wc -l"
echo -n "SW: "
docker exec supersam-app grep -o 'construction-delivery-static-v[0-9]*' /usr/share/caddy/service-worker.js
echo "── 4. бэкап кода в S3 ──"
/opt/supersam/scripts/backup-code-s3.sh >> /var/log/supersam-backup-code.log 2>&1 && echo "backup ok" || echo "backup WARN"
echo "Deploy completed at $(date)"