#!/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)"