Files
Avtex/.github/workflows/deploy-server.yml
T

86 lines
2.9 KiB
YAML

name: 🚀 Деплой Nanaxe Server
on:
push:
branches: [main, master]
paths:
- 'server/**'
- '.github/workflows/deploy-server.yml'
workflow_dispatch:
jobs:
deploy:
runs-on: self-hosted
name: Деплой сервера майндкарт
steps:
- name: 📥 Скачать код
uses: actions/checkout@v4
- name: 🔄 Синхронизация файлов
run: |
SERVER_PATH="/opt/nanaxe-server"
mkdir -p $SERVER_PATH/api
mkdir -p $SERVER_PATH/nginx/html
mkdir -p $SERVER_PATH/nginx/conf.d
mkdir -p $SERVER_PATH/scripts
# Синхронизация docker-compose
cp -f server/docker-compose.yml $SERVER_PATH/docker-compose.yml
# Синхронизация API
rsync -av --delete server/api/ $SERVER_PATH/api/
# Синхронизация nginx
cp -f server/nginx/nginx.conf $SERVER_PATH/nginx/nginx.conf
cp -f server/nginx/html/* $SERVER_PATH/nginx/html/
# Синхронизация скриптов
cp -f server/scripts/* $SERVER_PATH/scripts/ 2>/dev/null || true
# Копировать .env если не существует
if [ ! -f $SERVER_PATH/.env ]; then
cp -f server/.env.example $SERVER_PATH/.env
echo "⚠️ Создан .env из примера - ОБНОВИТЕ ДЛЯ PRODUCTION!"
fi
echo "✅ Файлы синхронизированы"
- name: 🐳 Пересборка и перезапуск
run: |
cd /opt/nanaxe-server
# Пересобрать API
docker compose build nanaxe-api
# Перезапустить все сервисы
docker compose down
docker compose up -d
echo "✅ Сервисы перезапущены"
- name: ✅ Проверка здоровья
run: |
sleep 10
# Проверка API
API_STATUS=$(curl -s -o /dev/null -w "%{http_code}" http://127.0.0.1:8082/health 2>/dev/null || echo "000")
if [ "$API_STATUS" = "200" ]; then
echo "✅ API работает"
else
echo "⚠️ API статус: $API_STATUS"
fi
# Проверка Gitea
GITEA_STATUS=$(curl -s -o /dev/null -w "%{http_code}" http://127.0.0.1:3001 2>/dev/null || echo "000")
if [ "$GITEA_STATUS" = "200" ]; then
echo "✅ Gitea работает"
else
echo "⚠️ Gitea статус: $GITEA_STATUS"
fi
# Список контейнеров
docker compose -f /opt/nanaxe-server/docker-compose.yml ps
echo "✅ ДЕПЛОЙ ЗАВЕРШЁН УСПЕШНО!"