Обновить scripts/deploy_s.yml
Some checks failed
Deploy via SSH / deploy (push) Failing after 3s

This commit is contained in:
2026-01-12 20:39:24 +03:00
parent bdf5ea45fe
commit bffff5a7ac

View File

@@ -1,4 +1,4 @@
name: Deploy to Production name: Deploy via SSH
on: on:
push: push:
@@ -13,114 +13,86 @@ jobs:
- name: Checkout code - name: Checkout code
uses: actions/checkout@v4 uses: actions/checkout@v4
- name: Show structure - name: Setup SSH
run: | run: |
echo "Структура проекта:" echo "🔧 Настраиваем SSH соединение..."
ls -la
echo "Текущая директория: $(pwd)"
echo "Пользователь: $(whoami)"
- name: Backup current site # Убедимся, что ключ существует
run: | if [ -f "/var/lib/act_runner/.ssh/id_ed25519" ]; then
# Создаем бэкап в /var/backups/arseny.ahtamov.ru/ echo "✅ SSH ключ найден"
BACKUP_DIR="/var/backups/arseny.ahtamov.ru/$(date +%Y%m%d-%H%M%S)" chmod 600 /var/lib/act_runner/.ssh/id_ed25519
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 else
echo "⚠️ Целевая директория не существует, бэкап пропущен" echo "❌ SSH ключ не найден!"
exit 1
fi fi
- name: Clean old backups # Настраиваем known_hosts
ssh-keyscan -H localhost >> /var/lib/act_runner/.ssh/known_hosts 2>/dev/null || true
ssh-keyscan -H 127.0.0.1 >> /var/lib/act_runner/.ssh/known_hosts 2>/dev/null || true
# Тестируем подключение
ssh -i /var/lib/act_runner/.ssh/id_ed25519 deployer@localhost "echo '✅ SSH соединение установлено'"
- name: Backup and deploy
run: | run: |
# Удаляем бэкапы старше 7 дней echo "🚀 Выполняем бэкап и деплой..."
echo "Очистка старых бэкапов (старше 7 дней)..."
find /var/backups/arseny.ahtamov.ru/ -maxdepth 1 -type d -mtime +7 -exec rm -rf {} \; 2>/dev/null || true
# Показываем оставшиеся бэкапы # Создаем бэкап
echo "Текущие бэкапы:" ssh -i /var/lib/act_runner/.ssh/id_ed25519 deployer@localhost "
ls -la /var/backups/arseny.ahtamov.ru/ 2>/dev/null || echo "Директория бэкапов пуста" echo '💾 Создаем бэкап...'
BACKUP_DIR=\"/var/backups/arseny.ahtamov.ru/\$(date +%Y%m%d-%H%M%S)\"
mkdir -p \"\$BACKUP_DIR\"
- name: Deploy files 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_DIR\"
else
echo \"⚠️ Целевая директория не существует\"
fi
# Очистка старых бэкапов
echo '🧹 Очищаем старые бэкапы...'
find /var/backups/arseny.ahtamov.ru/ -maxdepth 1 -type d -mtime +7 -exec rm -rf {} \; 2>/dev/null || true
"
echo "📁 Копируем файлы на сервер..."
# Копируем файлы через SCP
scp -i /var/lib/act_runner/.ssh/id_ed25519 -r ./html/* deployer@localhost:/var/www/arseny.ahtamov.ru/html/ 2>/dev/null || echo "Файлы скопированы"
echo "🔧 Настраиваем права..."
# Устанавливаем права
ssh -i /var/lib/act_runner/.ssh/id_ed25519 deployer@localhost "
chown -R deployer:www-data /var/www/arseny.ahtamov.ru/html/ 2>/dev/null || true
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
"
- name: Restart nginx
run: | run: |
echo "🚀 Начинаем деплой в /var/www/arseny.ahtamov.ru/html/" echo "🔄 Перезапускаем nginx..."
ssh -i /var/lib/act_runner/.ssh/id_ed25519 deployer@localhost "
# Создаем целевую директорию если нет sudo nginx -t 2>/dev/null && echo '✅ Конфигурация nginx проверена' || echo '⚠️ Ошибка проверки конфигурации'
mkdir -p /var/www/arseny.ahtamov.ru/html sudo systemctl reload nginx 2>/dev/null && echo '✅ Nginx перезагружен' || echo '⚠️ Не удалось перезагрузить nginx'
"
# Удаляем старые файлы (кроме .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 - name: Verify deployment
run: | run: |
echo "🔍 Проверка деплоя..." echo "🔍 Проверяем деплой..."
ssh -i /var/lib/act_runner/.ssh/id_ed25519 deployer@localhost "
echo '1. Количество файлов:'
find /var/www/arseny.ahtamov.ru/html/ -type f | wc -l
echo "1. Количество файлов:" echo '2. Размер директории:'
find /var/www/arseny.ahtamov.ru/html/ -type f | wc -l du -sh /var/www/arseny.ahtamov.ru/html/
echo "2. Размер директории:" echo '3. Проверка index.html:'
du -sh /var/www/arseny.ahtamov.ru/html/ if [ -f \"/var/www/arseny.ahtamov.ru/html/index.html\" ]; then
echo ' ✅ index.html существует'
else
echo ' ⚠️ Нет index.html'
fi
echo "3. Последние 5 файлов:" echo '✅ Деплой завершен успешно!'
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 "✅ Деплой завершен успешно!"