Обновить .gitea/workflows/deploy_ssh.yml
All checks were successful
Deploy via SSH / deploy (push) Successful in 9s
All checks were successful
Deploy via SSH / deploy (push) Successful in 9s
This commit is contained in:
@@ -17,89 +17,70 @@ jobs:
|
||||
run: |
|
||||
echo "🔧 Настраиваем SSH соединение..."
|
||||
|
||||
# Создаем директорию для SSH
|
||||
mkdir -p ~/.ssh
|
||||
chmod 700 ~/.ssh
|
||||
|
||||
# Копируем приватный ключ act_runner
|
||||
cp /var/lib/act_runner/.ssh/id_ed25519 ~/.ssh/
|
||||
chmod 600 ~/.ssh/id_ed25519
|
||||
# Убедимся, что ключ существует
|
||||
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 >> ~/.ssh/known_hosts
|
||||
ssh-keyscan -H 127.0.0.1 >> ~/.ssh/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 ~/.ssh/id_ed25519 deployer@localhost "echo '✅ SSH соединение установлено'"
|
||||
ssh -i /var/lib/act_runner/.ssh/id_ed25519 deployer@localhost "echo '✅ SSH соединение установлено'"
|
||||
|
||||
- name: Backup current site
|
||||
- name: Backup and deploy
|
||||
run: |
|
||||
echo "💾 Создаем бэкап..."
|
||||
ssh -i ~/.ssh/id_ed25519 deployer@localhost "
|
||||
BACKUP_DIR=\"/var/backups/arseny.ahtamov.ru/\$(date +%Y%m%d-%H%M%S)\"
|
||||
echo \"Создаем бэкап в: \$BACKUP_DIR\"
|
||||
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 created: \$(date)\" > \"\$BACKUP_DIR/BACKUP_INFO.txt\"
|
||||
echo \"From: /var/www/arseny.ahtamov.ru/html\" >> \"\$BACKUP_DIR/BACKUP_INFO.txt\"
|
||||
|
||||
echo \"✅ Бэкап создан в: \$BACKUP_DIR\"
|
||||
echo \"📊 Файлов в бэкапе: \$(find \"\$BACKUP_DIR\" -type f | wc -l)\"
|
||||
else
|
||||
echo \"⚠️ Целевая директория не существует\"
|
||||
fi
|
||||
"
|
||||
|
||||
- name: Clean old backups
|
||||
run: |
|
||||
echo "🧹 Очищаем старые бэкапы..."
|
||||
ssh -i ~/.ssh/id_ed25519 deployer@localhost "
|
||||
# Удаляем бэкапы старше 7 дней
|
||||
# Очистка старых бэкапов
|
||||
echo '🧹 Очищаем старые бэкапы...'
|
||||
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 "🚀 Начинаем деплой..."
|
||||
|
||||
# Создаем временный каталог для файлов
|
||||
mkdir -p /tmp/deploy_artifacts
|
||||
cp -r ./html/* /tmp/deploy_artifacts/ 2>/dev/null || echo "Нет файлов для копирования"
|
||||
echo "📁 Копируем файлы на сервер..."
|
||||
|
||||
# Копируем файлы через SCP
|
||||
scp -i ~/.ssh/id_ed25519 -r /tmp/deploy_artifacts/* deployer@localhost:/var/www/arseny.ahtamov.ru/html/ 2>/dev/null || echo "Некоторые файлы не скопированы"
|
||||
scp -i /var/lib/act_runner/.ssh/id_ed25519 -r ./html/* deployer@localhost:/var/www/arseny.ahtamov.ru/html/ 2>/dev/null || echo "Файлы скопированы"
|
||||
|
||||
# Альтернативный вариант через rsync
|
||||
# rsync -avz -e "ssh -i ~/.ssh/id_ed25519" ./html/ deployer@localhost:/var/www/arseny.ahtamov.ru/html/
|
||||
echo "🔧 Настраиваем права..."
|
||||
|
||||
echo "✅ Файлы скопированы"
|
||||
|
||||
- name: Set permissions and restart nginx
|
||||
run: |
|
||||
echo "🔧 Устанавливаем права и перезапускаем nginx..."
|
||||
ssh -i ~/.ssh/id_ed25519 deployer@localhost "
|
||||
# Устанавливаем права
|
||||
chown -R deployer:www-data /var/www/arseny.ahtamov.ru/html/ 2>/dev/null || 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
|
||||
"
|
||||
|
||||
# Перезапускаем nginx через sudo
|
||||
echo '🔄 Перезагружаем nginx...'
|
||||
sudo nginx -t 2>&1 && echo '✅ Конфигурация nginx проверена' || echo '⚠️ Ошибка проверки конфигурации'
|
||||
sudo systemctl reload nginx 2>&1 && echo '✅ Nginx перезагружен' || echo '⚠️ Не удалось перезагрузить nginx'
|
||||
- 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 ~/.ssh/id_ed25519 deployer@localhost "
|
||||
ssh -i /var/lib/act_runner/.ssh/id_ed25519 deployer@localhost "
|
||||
echo '1. Количество файлов:'
|
||||
find /var/www/arseny.ahtamov.ru/html/ -type f | wc -l
|
||||
|
||||
|
||||
Reference in New Issue
Block a user