87 lines
3.4 KiB
Bash
87 lines
3.4 KiB
Bash
|
|
#!/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 ""
|
|||
|
|
|