Files
WWW/scripts/deploy_s.yml
ascet bffff5a7ac
Some checks failed
Deploy via SSH / deploy (push) Failing after 3s
Обновить scripts/deploy_s.yml
2026-01-12 20:39:24 +03:00

98 lines
4.1 KiB
YAML
Raw Permalink 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 via SSH
on:
push:
branches: [main, master]
workflow_dispatch:
jobs:
deploy:
runs-on: self-hosted
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup SSH
run: |
echo "🔧 Настраиваем SSH соединение..."
# Убедимся, что ключ существует
if [ -f "/var/lib/act_runner/.ssh/id_ed25519" ]; then
echo "✅ SSH ключ найден"
chmod 600 /var/lib/act_runner/.ssh/id_ed25519
else
echo "❌ SSH ключ не найден!"
exit 1
fi
# Настраиваем 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: |
echo "🚀 Выполняем бэкап и деплой..."
# Создаем бэкап
ssh -i /var/lib/act_runner/.ssh/id_ed25519 deployer@localhost "
echo '💾 Создаем бэкап...'
BACKUP_DIR=\"/var/backups/arseny.ahtamov.ru/\$(date +%Y%m%d-%H%M%S)\"
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_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: |
echo "🔄 Перезапускаем nginx..."
ssh -i /var/lib/act_runner/.ssh/id_ed25519 deployer@localhost "
sudo nginx -t 2>/dev/null && echo '✅ Конфигурация nginx проверена' || echo '⚠️ Ошибка проверки конфигурации'
sudo systemctl reload nginx 2>/dev/null && echo '✅ Nginx перезагружен' || echo '⚠️ Не удалось перезагрузить nginx'
"
- name: Verify deployment
run: |
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 '2. Размер директории:'
du -sh /var/www/arseny.ahtamov.ru/html/
echo '3. Проверка index.html:'
if [ -f \"/var/www/arseny.ahtamov.ru/html/index.html\" ]; then
echo ' ✅ index.html существует'
else
echo ' ⚠️ Нет index.html'
fi
echo '✅ Деплой завершен успешно!'
"