Files
WWW/.gitea/workflows/deploy.yml
2026-01-10 22:23:00 +03:00

76 lines
2.7 KiB
YAML

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