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
|
||||
run: |
|
||||
ssh ${{ secrets.SSH_USER }}@${{ secrets.SSH_HOST }} << 'ENDSSH'
|
||||
ssh -o StrictHostKeyChecking=no ${{ secrets.SSH_USER }}@${{ secrets.SSH_HOST }} << 'ENDSSH'
|
||||
set -e
|
||||
echo "🔐 Checking Let's Encrypt certificates..."
|
||||
|
||||
|
|
@ -113,7 +113,7 @@ jobs:
|
|||
|
||||
- name: Get Dependencies
|
||||
run: |
|
||||
ssh ${{ secrets.SSH_USER }}@${{ secrets.SSH_HOST }} << 'ENDSSH'
|
||||
ssh -o StrictHostKeyChecking=no ${{ secrets.SSH_USER }}@${{ secrets.SSH_HOST }} << 'ENDSSH'
|
||||
set -e
|
||||
cd ~/mnemo_cards_backend
|
||||
echo "📦 Getting dependencies..."
|
||||
|
|
@ -122,7 +122,7 @@ jobs:
|
|||
|
||||
- name: Compile Server
|
||||
run: |
|
||||
ssh ${{ secrets.SSH_USER }}@${{ secrets.SSH_HOST }} << 'ENDSSH'
|
||||
ssh -o StrictHostKeyChecking=no ${{ secrets.SSH_USER }}@${{ secrets.SSH_HOST }} << 'ENDSSH'
|
||||
set -e
|
||||
cd ~/mnemo_cards_backend
|
||||
echo "🔨 Compiling server..."
|
||||
|
|
@ -131,7 +131,7 @@ jobs:
|
|||
|
||||
- name: Stop Service
|
||||
run: |
|
||||
ssh ${{ secrets.SSH_USER }}@${{ secrets.SSH_HOST }} << 'ENDSSH'
|
||||
ssh -o StrictHostKeyChecking=no ${{ secrets.SSH_USER }}@${{ secrets.SSH_HOST }} << 'ENDSSH'
|
||||
set -e
|
||||
echo "🛑 Stopping backend service..."
|
||||
sudo systemctl stop mnemo_cards_server || true
|
||||
|
|
@ -155,7 +155,7 @@ jobs:
|
|||
|
||||
- name: Update Service Configuration
|
||||
run: |
|
||||
ssh ${{ secrets.SSH_USER }}@${{ secrets.SSH_HOST }} << 'ENDSSH'
|
||||
ssh -o StrictHostKeyChecking=no ${{ secrets.SSH_USER }}@${{ secrets.SSH_HOST }} << 'ENDSSH'
|
||||
set -e
|
||||
cd ~/mnemo_cards_backend
|
||||
echo "⚙️ Updating service configuration..."
|
||||
|
|
@ -165,7 +165,7 @@ jobs:
|
|||
|
||||
- name: Update Executable
|
||||
run: |
|
||||
ssh ${{ secrets.SSH_USER }}@${{ secrets.SSH_HOST }} << 'ENDSSH'
|
||||
ssh -o StrictHostKeyChecking=no ${{ secrets.SSH_USER }}@${{ secrets.SSH_HOST }} << 'ENDSSH'
|
||||
set -e
|
||||
cd ~/mnemo_cards_backend
|
||||
echo "🔄 Replacing executable..."
|
||||
|
|
@ -175,7 +175,7 @@ jobs:
|
|||
|
||||
- name: Configure Certificates
|
||||
run: |
|
||||
ssh ${{ secrets.SSH_USER }}@${{ secrets.SSH_HOST }} << 'ENDSSH'
|
||||
ssh -o StrictHostKeyChecking=no ${{ secrets.SSH_USER }}@${{ secrets.SSH_HOST }} << 'ENDSSH'
|
||||
set -e
|
||||
# Check certificates and configure mode
|
||||
# Используем multi-domain сертификат mnemo-cards.online (если есть)
|
||||
|
|
@ -193,7 +193,7 @@ jobs:
|
|||
|
||||
- name: Restart Service
|
||||
run: |
|
||||
ssh ${{ secrets.SSH_USER }}@${{ secrets.SSH_HOST }} << 'ENDSSH'
|
||||
ssh -o StrictHostKeyChecking=no ${{ secrets.SSH_USER }}@${{ secrets.SSH_HOST }} << 'ENDSSH'
|
||||
set -e
|
||||
echo "🚀 Restarting service..."
|
||||
sudo systemctl daemon-reload
|
||||
|
|
@ -204,7 +204,7 @@ jobs:
|
|||
|
||||
- name: Ensure Nginx Running
|
||||
run: |
|
||||
ssh ${{ secrets.SSH_USER }}@${{ secrets.SSH_HOST }} << 'ENDSSH'
|
||||
ssh -o StrictHostKeyChecking=no ${{ secrets.SSH_USER }}@${{ secrets.SSH_HOST }} << 'ENDSSH'
|
||||
set -e
|
||||
echo "🔍 Проверяем статус nginx..."
|
||||
if sudo systemctl is-active --quiet nginx; then
|
||||
|
|
@ -284,13 +284,24 @@ jobs:
|
|||
runs-on: ubuntu-latest
|
||||
container: ghcr.io/cirruslabs/flutter:3.35.5
|
||||
needs: ensure-nginx-running
|
||||
if: always()
|
||||
if: always() && needs.ensure-nginx-running.result == 'success'
|
||||
steps:
|
||||
- name: Setup Node.js
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
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
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
|
|
@ -303,16 +314,29 @@ jobs:
|
|||
git config --global http.maxRequestBuffer 100M
|
||||
git config --global core.compression 0
|
||||
|
||||
- name: Install Dependencies
|
||||
- name: Check Nginx Before Web Deploy
|
||||
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
|
||||
echo "🔍 Проверяем статус nginx перед деплоем web..."
|
||||
ssh -o StrictHostKeyChecking=no ${{ secrets.SSH_USER }}@${{ secrets.SSH_HOST }} << 'ENDSSH'
|
||||
set -e
|
||||
if sudo systemctl is-active --quiet nginx; then
|
||||
echo "✅ nginx работает перед web деплоем"
|
||||
# Тестируем доступность
|
||||
if curl -I --max-time 5 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 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
|
||||
working-directory: mnemo_cards_web_v2
|
||||
|
|
@ -324,10 +348,56 @@ jobs:
|
|||
|
||||
- name: Deploy Web App
|
||||
run: |
|
||||
echo "📦 Копируем веб-приложение..."
|
||||
rsync -avz --delete mnemo_cards_web_v2/build/web/ \
|
||||
${{ secrets.SSH_USER }}@${{ secrets.SSH_HOST }}:/var/www/mnemo_cards/
|
||||
echo "✅ Веб-приложение скопировано"
|
||||
|
||||
- name: Fix Permissions
|
||||
- name: Fix Permissions and Verify
|
||||
run: |
|
||||
ssh ${{ secrets.SSH_USER }}@${{ secrets.SSH_HOST }} \
|
||||
"chown -R www-data:www-data /var/www/mnemo_cards && chmod -R 755 /var/www/mnemo_cards"
|
||||
ssh -o StrictHostKeyChecking=no ${{ secrets.SSH_USER }}@${{ secrets.SSH_HOST }} << 'ENDSSH'
|
||||
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