Files
WWW/.gitea/workflows/deploy.yml
Workflow config file is invalid. Please check your config file: yaml: line 127: could not find expected ':'

127 lines
5.7 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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 "✅ Деплой завершен успешно!"
EOF