stuff
This commit is contained in:
parent
b5105726ab
commit
5bca12906b
1 changed files with 92 additions and 22 deletions
|
|
@ -49,7 +49,7 @@ jobs:
|
||||||
|
|
||||||
- name: Obtain Certificates
|
- name: Obtain Certificates
|
||||||
run: |
|
run: |
|
||||||
ssh ${{ secrets.SSH_USER }}@${{ secrets.SSH_HOST }} << 'ENDSSH'
|
ssh -o StrictHostKeyChecking=no ${{ secrets.SSH_USER }}@${{ secrets.SSH_HOST }} << 'ENDSSH'
|
||||||
set -e
|
set -e
|
||||||
echo "🔐 Checking Let's Encrypt certificates..."
|
echo "🔐 Checking Let's Encrypt certificates..."
|
||||||
|
|
||||||
|
|
@ -113,7 +113,7 @@ jobs:
|
||||||
|
|
||||||
- name: Get Dependencies
|
- name: Get Dependencies
|
||||||
run: |
|
run: |
|
||||||
ssh ${{ secrets.SSH_USER }}@${{ secrets.SSH_HOST }} << 'ENDSSH'
|
ssh -o StrictHostKeyChecking=no ${{ secrets.SSH_USER }}@${{ secrets.SSH_HOST }} << 'ENDSSH'
|
||||||
set -e
|
set -e
|
||||||
cd ~/mnemo_cards_backend
|
cd ~/mnemo_cards_backend
|
||||||
echo "📦 Getting dependencies..."
|
echo "📦 Getting dependencies..."
|
||||||
|
|
@ -122,7 +122,7 @@ jobs:
|
||||||
|
|
||||||
- name: Compile Server
|
- name: Compile Server
|
||||||
run: |
|
run: |
|
||||||
ssh ${{ secrets.SSH_USER }}@${{ secrets.SSH_HOST }} << 'ENDSSH'
|
ssh -o StrictHostKeyChecking=no ${{ secrets.SSH_USER }}@${{ secrets.SSH_HOST }} << 'ENDSSH'
|
||||||
set -e
|
set -e
|
||||||
cd ~/mnemo_cards_backend
|
cd ~/mnemo_cards_backend
|
||||||
echo "🔨 Compiling server..."
|
echo "🔨 Compiling server..."
|
||||||
|
|
@ -131,7 +131,7 @@ jobs:
|
||||||
|
|
||||||
- name: Stop Service
|
- name: Stop Service
|
||||||
run: |
|
run: |
|
||||||
ssh ${{ secrets.SSH_USER }}@${{ secrets.SSH_HOST }} << 'ENDSSH'
|
ssh -o StrictHostKeyChecking=no ${{ secrets.SSH_USER }}@${{ secrets.SSH_HOST }} << 'ENDSSH'
|
||||||
set -e
|
set -e
|
||||||
echo "🛑 Stopping backend service..."
|
echo "🛑 Stopping backend service..."
|
||||||
sudo systemctl stop mnemo_cards_server || true
|
sudo systemctl stop mnemo_cards_server || true
|
||||||
|
|
@ -155,7 +155,7 @@ jobs:
|
||||||
|
|
||||||
- name: Update Service Configuration
|
- name: Update Service Configuration
|
||||||
run: |
|
run: |
|
||||||
ssh ${{ secrets.SSH_USER }}@${{ secrets.SSH_HOST }} << 'ENDSSH'
|
ssh -o StrictHostKeyChecking=no ${{ secrets.SSH_USER }}@${{ secrets.SSH_HOST }} << 'ENDSSH'
|
||||||
set -e
|
set -e
|
||||||
cd ~/mnemo_cards_backend
|
cd ~/mnemo_cards_backend
|
||||||
echo "⚙️ Updating service configuration..."
|
echo "⚙️ Updating service configuration..."
|
||||||
|
|
@ -165,7 +165,7 @@ jobs:
|
||||||
|
|
||||||
- name: Update Executable
|
- name: Update Executable
|
||||||
run: |
|
run: |
|
||||||
ssh ${{ secrets.SSH_USER }}@${{ secrets.SSH_HOST }} << 'ENDSSH'
|
ssh -o StrictHostKeyChecking=no ${{ secrets.SSH_USER }}@${{ secrets.SSH_HOST }} << 'ENDSSH'
|
||||||
set -e
|
set -e
|
||||||
cd ~/mnemo_cards_backend
|
cd ~/mnemo_cards_backend
|
||||||
echo "🔄 Replacing executable..."
|
echo "🔄 Replacing executable..."
|
||||||
|
|
@ -175,7 +175,7 @@ jobs:
|
||||||
|
|
||||||
- name: Configure Certificates
|
- name: Configure Certificates
|
||||||
run: |
|
run: |
|
||||||
ssh ${{ secrets.SSH_USER }}@${{ secrets.SSH_HOST }} << 'ENDSSH'
|
ssh -o StrictHostKeyChecking=no ${{ secrets.SSH_USER }}@${{ secrets.SSH_HOST }} << 'ENDSSH'
|
||||||
set -e
|
set -e
|
||||||
# Check certificates and configure mode
|
# Check certificates and configure mode
|
||||||
# Используем multi-domain сертификат mnemo-cards.online (если есть)
|
# Используем multi-domain сертификат mnemo-cards.online (если есть)
|
||||||
|
|
@ -193,7 +193,7 @@ jobs:
|
||||||
|
|
||||||
- name: Restart Service
|
- name: Restart Service
|
||||||
run: |
|
run: |
|
||||||
ssh ${{ secrets.SSH_USER }}@${{ secrets.SSH_HOST }} << 'ENDSSH'
|
ssh -o StrictHostKeyChecking=no ${{ secrets.SSH_USER }}@${{ secrets.SSH_HOST }} << 'ENDSSH'
|
||||||
set -e
|
set -e
|
||||||
echo "🚀 Restarting service..."
|
echo "🚀 Restarting service..."
|
||||||
sudo systemctl daemon-reload
|
sudo systemctl daemon-reload
|
||||||
|
|
@ -204,7 +204,7 @@ jobs:
|
||||||
|
|
||||||
- name: Ensure Nginx Running
|
- name: Ensure Nginx Running
|
||||||
run: |
|
run: |
|
||||||
ssh ${{ secrets.SSH_USER }}@${{ secrets.SSH_HOST }} << 'ENDSSH'
|
ssh -o StrictHostKeyChecking=no ${{ secrets.SSH_USER }}@${{ secrets.SSH_HOST }} << 'ENDSSH'
|
||||||
set -e
|
set -e
|
||||||
echo "🔍 Проверяем статус nginx..."
|
echo "🔍 Проверяем статус nginx..."
|
||||||
if sudo systemctl is-active --quiet nginx; then
|
if sudo systemctl is-active --quiet nginx; then
|
||||||
|
|
@ -284,13 +284,24 @@ jobs:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
container: ghcr.io/cirruslabs/flutter:3.35.5
|
container: ghcr.io/cirruslabs/flutter:3.35.5
|
||||||
needs: ensure-nginx-running
|
needs: ensure-nginx-running
|
||||||
if: always()
|
if: always() && needs.ensure-nginx-running.result == 'success'
|
||||||
steps:
|
steps:
|
||||||
- name: Setup Node.js
|
- name: Setup Node.js
|
||||||
uses: actions/setup-node@v4
|
uses: actions/setup-node@v4
|
||||||
with:
|
with:
|
||||||
node-version: '20'
|
node-version: '20'
|
||||||
|
|
||||||
|
- name: Install Dependencies
|
||||||
|
run: |
|
||||||
|
apt-get update && apt-get install -y rsync openssh-client jq git nodejs npm
|
||||||
|
|
||||||
|
- name: Setup SSH
|
||||||
|
run: |
|
||||||
|
mkdir -p ~/.ssh
|
||||||
|
echo "${{ secrets.SSH_KEY }}" > ~/.ssh/id_rsa
|
||||||
|
chmod 600 ~/.ssh/id_rsa
|
||||||
|
ssh-keyscan -H ${{ secrets.SSH_HOST }} >> ~/.ssh/known_hosts
|
||||||
|
|
||||||
- name: Checkout code
|
- name: Checkout code
|
||||||
uses: actions/checkout@v3
|
uses: actions/checkout@v3
|
||||||
with:
|
with:
|
||||||
|
|
@ -303,16 +314,29 @@ jobs:
|
||||||
git config --global http.maxRequestBuffer 100M
|
git config --global http.maxRequestBuffer 100M
|
||||||
git config --global core.compression 0
|
git config --global core.compression 0
|
||||||
|
|
||||||
- name: Install Dependencies
|
- name: Check Nginx Before Web Deploy
|
||||||
run: |
|
run: |
|
||||||
apt-get update && apt-get install -y rsync openssh-client jq git nodejs npm
|
echo "🔍 Проверяем статус nginx перед деплоем web..."
|
||||||
|
ssh -o StrictHostKeyChecking=no ${{ secrets.SSH_USER }}@${{ secrets.SSH_HOST }} << 'ENDSSH'
|
||||||
- name: Setup SSH
|
set -e
|
||||||
run: |
|
if sudo systemctl is-active --quiet nginx; then
|
||||||
mkdir -p ~/.ssh
|
echo "✅ nginx работает перед web деплоем"
|
||||||
echo "${{ secrets.SSH_KEY }}" > ~/.ssh/id_rsa
|
# Тестируем доступность
|
||||||
chmod 600 ~/.ssh/id_rsa
|
if curl -I --max-time 5 https://mnemo-cards.online/ 2>/dev/null | grep -q "200\|301\|302"; then
|
||||||
ssh-keyscan -H ${{ secrets.SSH_HOST }} >> ~/.ssh/known_hosts
|
echo "✅ mnemo-cards.online доступен"
|
||||||
|
else
|
||||||
|
echo "⚠️ mnemo-cards.online недоступен"
|
||||||
|
fi
|
||||||
|
if curl -I --max-time 5 https://code.mnemo-cards.online/ 2>/dev/null | grep -q "200\|301\|302"; then
|
||||||
|
echo "✅ code.mnemo-cards.online доступен"
|
||||||
|
else
|
||||||
|
echo "⚠️ code.mnemo-cards.online недоступен"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo "❌ nginx не работает перед web деплоем!"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
ENDSSH
|
||||||
|
|
||||||
- name: Build Web App
|
- name: Build Web App
|
||||||
working-directory: mnemo_cards_web_v2
|
working-directory: mnemo_cards_web_v2
|
||||||
|
|
@ -324,10 +348,56 @@ jobs:
|
||||||
|
|
||||||
- name: Deploy Web App
|
- name: Deploy Web App
|
||||||
run: |
|
run: |
|
||||||
|
echo "📦 Копируем веб-приложение..."
|
||||||
rsync -avz --delete mnemo_cards_web_v2/build/web/ \
|
rsync -avz --delete mnemo_cards_web_v2/build/web/ \
|
||||||
${{ secrets.SSH_USER }}@${{ secrets.SSH_HOST }}:/var/www/mnemo_cards/
|
${{ secrets.SSH_USER }}@${{ secrets.SSH_HOST }}:/var/www/mnemo_cards/
|
||||||
|
echo "✅ Веб-приложение скопировано"
|
||||||
|
|
||||||
- name: Fix Permissions
|
- name: Fix Permissions and Verify
|
||||||
run: |
|
run: |
|
||||||
ssh ${{ secrets.SSH_USER }}@${{ secrets.SSH_HOST }} \
|
ssh -o StrictHostKeyChecking=no ${{ secrets.SSH_USER }}@${{ secrets.SSH_HOST }} << 'ENDSSH'
|
||||||
"chown -R www-data:www-data /var/www/mnemo_cards && chmod -R 755 /var/www/mnemo_cards"
|
set -e
|
||||||
|
echo "🔧 Исправляем права доступа..."
|
||||||
|
chown -R www-data:www-data /var/www/mnemo_cards
|
||||||
|
chmod -R 755 /var/www/mnemo_cards
|
||||||
|
echo "✅ Права исправлены"
|
||||||
|
|
||||||
|
echo "🔍 Проверяем nginx после деплоя web..."
|
||||||
|
if sudo systemctl is-active --quiet nginx; then
|
||||||
|
echo "✅ nginx работает"
|
||||||
|
# Перезагружаем nginx для применения новых файлов
|
||||||
|
echo "🔄 Перезагружаем nginx..."
|
||||||
|
if sudo nginx -t 2>/dev/null; then
|
||||||
|
sudo systemctl reload nginx
|
||||||
|
echo "✅ nginx перезагружен"
|
||||||
|
sleep 2
|
||||||
|
|
||||||
|
# Тестируем доступность
|
||||||
|
if curl -I --max-time 10 https://mnemo-cards.online/ 2>/dev/null | grep -q "200\|301\|302"; then
|
||||||
|
echo "✅ mnemo-cards.online доступен"
|
||||||
|
else
|
||||||
|
echo "⚠️ mnemo-cards.online недоступен"
|
||||||
|
fi
|
||||||
|
if curl -I --max-time 10 https://code.mnemo-cards.online/ 2>/dev/null | grep -q "200\|301\|302"; then
|
||||||
|
echo "✅ code.mnemo-cards.online доступен"
|
||||||
|
else
|
||||||
|
echo "⚠️ code.mnemo-cards.online недоступен"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo "❌ Ошибка в конфигурации nginx!"
|
||||||
|
sudo nginx -t || true
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo "❌ nginx не работает! Запускаем..."
|
||||||
|
sudo systemctl start nginx
|
||||||
|
sleep 2
|
||||||
|
if sudo systemctl is-active --quiet nginx; then
|
||||||
|
echo "✅ nginx запущен"
|
||||||
|
else
|
||||||
|
echo "❌ Не удалось запустить nginx!"
|
||||||
|
sudo systemctl status nginx --no-pager || true
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
ENDSSH
|
||||||
Loading…
Reference in a new issue