#!/bin/bash # ============================================ # Скрипт переноса изменений из DEV в PROD # ============================================ set -e cd "$(dirname "$0")" echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" echo "🚀 Перенос изменений из DEV в PROD" echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" echo "" # Проверка что мы в правильной директории if [ ! -f "docker-compose.dev.yml" ]; then echo "❌ Ошибка: запустите скрипт из корня проекта ticket_form" exit 1 fi # 1. Проверка изменений в git echo "📊 Проверяю изменения в git..." if [ -n "$(git status --porcelain)" ]; then echo "⚠️ Есть незакоммиченные изменения!" echo "" git status --short echo "" read -p "Закоммитить изменения перед деплоем? (y/N): " -n 1 -r echo if [[ $REPLY =~ ^[Yy]$ ]]; then echo "💾 Коммичу изменения..." git add -A git commit -m "chore: Изменения перед деплоем в prod $(date +%Y-%m-%d)" fi fi # 2. Push в dev репозиторий echo "" echo "📤 Отправляю изменения в DEV репозиторий..." if git remote | grep -q "aiform_dev"; then git push aiform_dev main 2>/dev/null || git push aiform_dev master 2>/dev/null || echo "⚠️ Не удалось запушить в aiform_dev" fi # 3. Push в prod репозиторий echo "" echo "📤 Отправляю изменения в PROD репозиторий..." if git remote | grep -q "aiform_prod"; then git push aiform_prod main 2>/dev/null || git push aiform_prod master 2>/dev/null || echo "⚠️ Не удалось запушить в aiform_prod" else echo "⚠️ Remote 'aiform_prod' не найден. Добавьте:" echo " git remote add aiform_prod http://147.45.146.17:3002/negodiy/aiform_prod.git" fi # 4. Пересборка prod контейнеров echo "" echo "🔨 Пересобираю PROD контейнеры..." docker-compose -f docker-compose.prod.yml build --no-cache # 5. Перезапуск prod echo "" echo "🔄 Перезапускаю PROD окружение..." docker-compose -f docker-compose.prod.yml down docker-compose -f docker-compose.prod.yml up -d # 6. Проверка статуса echo "" echo "⏳ Жду запуска (5 сек)..." sleep 5 echo "" echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" echo "✅ Деплой завершён!" echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" echo "" echo "📍 PROD доступен:" echo " Frontend: http://localhost:5176" echo " Backend: http://localhost:8200" echo " Production: https://aiform.clientright.ru" echo "" echo "📊 Статус контейнеров:" docker-compose -f docker-compose.prod.yml ps echo "" echo "📋 Логи (последние 20 строк):" docker-compose -f docker-compose.prod.yml logs --tail=20 echo ""