Обновить .gitea/workflows/deploy.yml
This commit is contained in:
@@ -1,76 +1,129 @@
|
|||||||
|
cd /var/www/WWW
|
||||||
|
cat > .gitea/workflows/deploy.yml << 'EOF'
|
||||||
name: Deploy to Production
|
name: Deploy to Production
|
||||||
|
|
||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
branches: [main, master]
|
branches: [main, master]
|
||||||
workflow_dispatch: # Ручной запуск из интерфейса
|
workflow_dispatch:
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
deploy:
|
deploy:
|
||||||
runs-on: self-hosted # Используем ваш act_runner без Docker
|
runs-on: self-hosted
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout code
|
- name: Checkout code
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
with:
|
|
||||||
fetch-depth: 0
|
|
||||||
|
|
||||||
- name: Show structure
|
- name: Show structure
|
||||||
run: |
|
run: |
|
||||||
echo "Структура проекта:"
|
echo "Структура проекта:"
|
||||||
ls -la
|
ls -la
|
||||||
echo "Текущая директория: $(pwd)"
|
echo "Текущая директория: $(pwd)"
|
||||||
|
echo "Пользователь: $(whoami)"
|
||||||
|
|
||||||
- name: Backup current site
|
- name: Backup current site
|
||||||
run: |
|
run: |
|
||||||
BACKUP_DIR="/var/backups/arseny.ahtamovru.ru/$(date +%Y%m%d-%H%M%S)"
|
# Создаем бэкап в /var/backups/arseny.ahtamov.ru/
|
||||||
echo "Backup будет создан в: $BACKUP_DIR"
|
BACKUP_DIR="/var/backups/arseny.ahtamov.ru/$(date +%Y%m%d-%H%M%S)"
|
||||||
mkdir -p $BACKUP_DIR
|
echo "Создаем бэкап в: $BACKUP_DIR"
|
||||||
cp -r /var/www/arseny.ahtamov.ru/html/* $BACKUP_DIR/ 2>/dev/null || true
|
|
||||||
echo "Backup создан в: $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
|
- name: Deploy files
|
||||||
run: |
|
run: |
|
||||||
echo "Деплой файлов в /var/www/arseny.ahtamov.ru/html/"
|
echo "🚀 Начинаем деплой в /var/www/arseny.ahtamov.ru/html/"
|
||||||
|
|
||||||
# Удаляем старые файлы (кроме скрытых системных)
|
# Создаем целевую директорию если нет
|
||||||
find /var/www/arseny.ahtamov.ru/html/ -type f \
|
mkdir -p /var/www/arseny.ahtamov.ru/html
|
||||||
! -name '.htaccess' \
|
|
||||||
! -name '.user.ini' \
|
# Удаляем старые файлы (кроме .htaccess и .user.ini)
|
||||||
! -name '.well-known' \
|
echo "Очистка старого содержимого..."
|
||||||
-delete 2>/dev/null || true
|
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
|
||||||
|
|
||||||
# Копируем новые файлы
|
# Копируем новые файлы
|
||||||
cp -r ./* /var/www/arseny.ahtamov.ru/html/
|
echo "Копирование новых файлов..."
|
||||||
|
cp -r ./html/* /var/www/arseny.ahtamov.ru/html/ 2>/dev/null || echo "Некоторые файлы не скопированы"
|
||||||
|
|
||||||
# Устанавливаем правильные права
|
echo "✅ Файлы скопированы"
|
||||||
chown -R www-data:www-data /var/www/arseny.ahtamov.ru/html/
|
|
||||||
find /var/www/arseny.ahtamov.ru/html/ -type d -exec chmod 755 {} \;
|
|
||||||
find /var/www/arseny.ahtamov.ru/html/ -type f -exec chmod 644 {} \;
|
|
||||||
|
|
||||||
# Для скриптов (если есть) даем права на выполнение
|
- 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 "*.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 "*.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
|
||||||
|
|
||||||
- name: Restart nginx
|
echo "✅ Права установлены"
|
||||||
run: |
|
|
||||||
echo "Проверяем конфигурацию nginx"
|
|
||||||
nginx -t
|
|
||||||
|
|
||||||
echo "Перезагружаем nginx"
|
|
||||||
systemctl reload nginx || nginx -s reload
|
|
||||||
|
|
||||||
echo "Проверяем статус nginx"
|
|
||||||
systemctl status nginx --no-pager || true
|
|
||||||
|
|
||||||
- name: Verify deployment
|
- name: Verify deployment
|
||||||
run: |
|
run: |
|
||||||
echo "Проверка деплоя:"
|
echo "🔍 Проверка деплоя..."
|
||||||
echo "Количество файлов в целевой директории:"
|
|
||||||
|
echo "1. Количество файлов:"
|
||||||
find /var/www/arseny.ahtamov.ru/html/ -type f | wc -l
|
find /var/www/arseny.ahtamov.ru/html/ -type f | wc -l
|
||||||
|
|
||||||
echo "Размер директории:"
|
echo "2. Размер директории:"
|
||||||
du -sh /var/www/arseny.ahtamov.ru/html/
|
du -sh /var/www/arseny.ahtamov.ru/html/
|
||||||
|
|
||||||
echo "Последние измененные файлы:"
|
echo "3. Последние 5 файлов:"
|
||||||
ls -lht /var/www/arseny.ahtamov.ru/html/ | head -10
|
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
|
||||||
Reference in New Issue
Block a user