From bfc6a0e2169a7379c2bd6857de7df82dc14db31b Mon Sep 17 00:00:00 2001 From: ascet Date: Mon, 12 Jan 2026 20:32:52 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D1=82?= =?UTF-8?q?=D1=8C=20scripts/deploy=5Fs.yml?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- scripts/deploy_s.yml | 126 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 126 insertions(+) create mode 100644 scripts/deploy_s.yml diff --git a/scripts/deploy_s.yml b/scripts/deploy_s.yml new file mode 100644 index 0000000..cf6010d --- /dev/null +++ b/scripts/deploy_s.yml @@ -0,0 +1,126 @@ +name: Deploy to Production + +on: + push: + branches: [main, master] + workflow_dispatch: + +jobs: + deploy: + runs-on: self-hosted + + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Show structure + run: | + echo "Структура проекта:" + ls -la + echo "Текущая директория: $(pwd)" + echo "Пользователь: $(whoami)" + + - name: Backup current site + run: | + # Создаем бэкап в /var/backups/arseny.ahtamov.ru/ + BACKUP_DIR="/var/backups/arseny.ahtamov.ru/$(date +%Y%m%d-%H%M%S)" + echo "Создаем бэкап в: $BACKUP_DIR" + + mkdir -p "$BACKUP_DIR" + + if [ -d "/var/www/arseny.ahtamov.ru/html" ]; then + # Копируем с сохранением прав и владельцев + cp -rp /var/www/arseny.ahtamov.ru/html/* "$BACKUP_DIR/" 2>/dev/null || echo "Некоторые файлы не скопированы" + + # Создаем файл с информацией о бэкапе + echo "Backup created: $(date)" > "$BACKUP_DIR/BACKUP_INFO.txt" + echo "From: /var/www/arseny.ahtamov.ru/html" >> "$BACKUP_DIR/BACKUP_INFO.txt" + echo "Files count: $(find "$BACKUP_DIR" -type f | wc -l)" >> "$BACKUP_DIR/BACKUP_INFO.txt" + + echo "✅ Бэкап создан в: $BACKUP_DIR" + echo "📊 Файлов в бэкапе: $(find "$BACKUP_DIR" -type f | wc -l)" + else + echo "⚠️ Целевая директория не существует, бэкап пропущен" + fi + + - name: Clean old backups + run: | + # Удаляем бэкапы старше 7 дней + echo "Очистка старых бэкапов (старше 7 дней)..." + find /var/backups/arseny.ahtamov.ru/ -maxdepth 1 -type d -mtime +7 -exec rm -rf {} \; 2>/dev/null || true + + # Показываем оставшиеся бэкапы + echo "Текущие бэкапы:" + ls -la /var/backups/arseny.ahtamov.ru/ 2>/dev/null || echo "Директория бэкапов пуста" + + - name: Deploy files + run: | + echo "🚀 Начинаем деплой в /var/www/arseny.ahtamov.ru/html/" + + # Создаем целевую директорию если нет + mkdir -p /var/www/arseny.ahtamov.ru/html + + # Удаляем старые файлы (кроме .htaccess и .user.ini) + echo "Очистка старого содержимого..." + find /var/www/arseny.ahtamov.ru/html -type f ! -name '.htaccess' ! -name '.user.ini' -delete 2>/dev/null || true + find /var/www/arseny.ahtamov.ru/html -type d -mindepth 1 -exec rm -rf {} \; 2>/dev/null || true + + # Копируем новые файлы + echo "Копирование новых файлов..." + cp -r ./html/* /var/www/arseny.ahtamov.ru/html/ 2>/dev/null || echo "Некоторые файлы не скопированы" + + echo "✅ Файлы скопированы" + + - name: Set correct permissions + run: | + echo "Установка прав..." + + # Основные права + chown -R www-data:www-data /var/www/arseny.ahtamov.ru/html/ 2>/dev/null || echo "Не удалось изменить владельца" + + # Права на директории + find /var/www/arseny.ahtamov.ru/html/ -type d -exec chmod 755 {} \; 2>/dev/null || true + + # Права на файлы + find /var/www/arseny.ahtamov.ru/html/ -type f -exec chmod 644 {} \; 2>/dev/null || true + + # Специальные права для скриптов + find /var/www/arseny.ahtamov.ru/html/ -name "*.php" -exec chmod 755 {} \; 2>/dev/null || true + find /var/www/arseny.ahtamov.ru/html/ -name "*.cgi" -exec chmod 755 {} \; 2>/dev/null || true + find /var/www/arseny.ahtamov.ru/html/ -name "*.pl" -exec chmod 755 {} \; 2>/dev/null || true + find /var/www/arseny.ahtamov.ru/html/ -name "*.sh" -exec chmod 755 {} \; 2>/dev/null || true + + echo "✅ Права установлены" + + - name: Verify deployment + run: | + echo "🔍 Проверка деплоя..." + + echo "1. Количество файлов:" + find /var/www/arseny.ahtamov.ru/html/ -type f | wc -l + + echo "2. Размер директории:" + du -sh /var/www/arseny.ahtamov.ru/html/ + + echo "3. Последние 5 файлов:" + ls -laht /var/www/arseny.ahtamov.ru/html/ | head -10 + + echo "4. Проверка index.html/index.php:" + if [ -f "/var/www/arseny.ahtamov.ru/html/index.html" ]; then + echo " ✅ index.html существует" + elif [ -f "/var/www/arseny.ahtamov.ru/html/index.php" ]; then + echo " ✅ index.php существует" + else + echo " ⚠️ Нет index.html или index.php" + fi + + - name: Restart nginx (if needed) + run: | + echo "🔄 Проверка конфигурации nginx..." + nginx -t 2>&1 || echo "Проверка конфигурации не удалась" + + echo "Перезагрузка nginx..." + systemctl reload nginx 2>&1 || echo "Перезагрузка через systemctl не удалась, пробуем signal..." + nginx -s reload 2>&1 || echo "Перезагрузка через signal не удалась" + + echo "✅ Деплой завершен успешно!" \ No newline at end of file