diff --git a/.gitea/workflows/deploy.yml b/.gitea/workflows/deploy.yml index 6bef789..b62d640 100644 --- a/.gitea/workflows/deploy.yml +++ b/.gitea/workflows/deploy.yml @@ -4,10 +4,11 @@ on: push: branches: - main + workflow_dispatch: # allows manual trigger if needed jobs: deploy: - name: Deploy to turbotrades.dev + name: Deploy TurboTrades runs-on: ubuntu-latest steps: @@ -37,7 +38,7 @@ jobs: VITE_API_URL: https://api.turbotrades.dev VITE_WS_URL: https://ws.turbotrades.dev - - name: Deploy to Production + - name: Deploy via SSH (Gitea + password) uses: appleboy/ssh-action@v1.0.0 with: host: ${{ secrets.SERVER_HOST }} @@ -47,17 +48,15 @@ jobs: script: | echo "πŸš€ Starting deployment to turbotrades.dev..." - # Create directories if they don't exist - mkdir -p /root/ttbackend - mkdir -p /root/ttbackend/logs - mkdir -p /var/www/html/turbotrades + # Ensure directories exist + mkdir -p /root/ttbackend /root/ttbackend/logs /var/www/html/turbotrades - # Navigate to backend directory cd /root/ttbackend - # Stop the application - echo "⏸️ Stopping backend..." + # Stop backend if running + echo "⏸️ Stopping backend..." pm2 stop turbotrades-backend || echo "Backend not running" + pm2 delete turbotrades-backend || true # Backup current version echo "πŸ’Ύ Creating backup..." @@ -66,9 +65,9 @@ jobs: mv /root/ttbackend-backup /root/ttbackend-backup-old fi mkdir -p /root/ttbackend-backup - cp -r /root/ttbackend/* /root/ttbackend-backup/ 2>/dev/null || true + rsync -a --delete /root/ttbackend/ /root/ttbackend-backup/ || true - # Clone or pull repository + # Pull latest code via HTTPS (password auth) if [ -d ".git" ]; then echo "πŸ“₯ Pulling latest code..." git fetch origin @@ -77,8 +76,8 @@ jobs: else echo "πŸ“₯ Cloning repository..." cd /root - rm -rf ttbackend/* - git clone https://git.turbotrades.dev/iDefineHD/TurboTrades.git ttbackend + rm -rf ttbackend + git clone https://username:${{ secrets.SERVER_PASSWORD }}@git.turbotrades.dev/iDefineHD/TurboTrades.git ttbackend cd ttbackend fi @@ -92,43 +91,30 @@ jobs: npm ci npm run build - # Deploy frontend to nginx directory - echo "πŸš€ Deploying frontend to /var/www/html/turbotrades..." + # Deploy frontend + echo "πŸš€ Deploying frontend..." rm -rf /var/www/html/turbotrades/* cp -r dist/* /var/www/html/turbotrades/ - - # Set proper permissions chown -R www-data:www-data /var/www/html/turbotrades chmod -R 755 /var/www/html/turbotrades - # Back to backend directory + # Start backend cd /root/ttbackend - - # Start backend with PM2 - echo "▢️ Starting backend..." + echo "▢️ Starting backend..." pm2 start ecosystem.config.js --env production pm2 save - # Verify deployment echo "βœ… Deployment complete!" - echo "" - echo "πŸ“Š PM2 Status:" pm2 list - echo "" - echo "🌐 Frontend: https://turbotrades.dev" - echo "πŸ”§ Backend: https://api.turbotrades.dev" - echo "πŸ’¬ WebSocket: https://ws.turbotrades.dev" - name: Health Check run: | echo "⏳ Waiting for services to start..." sleep 15 - - echo "πŸ₯ Checking backend health..." - curl -f https://api.turbotrades.dev/api/health || echo "⚠️ Backend health check failed" - + echo "πŸ₯ Checking backend..." + curl -f https://api.turbotrades.dev/api/health || echo "⚠️ Backend health check failed" echo "πŸ₯ Checking frontend..." - curl -f https://turbotrades.dev || echo "⚠️ Frontend check failed" + curl -f https://turbotrades.dev || echo "⚠️ Frontend check failed" - name: Notify Success if: success() @@ -142,8 +128,7 @@ jobs: - name: Notify Failure if: failure() run: | - echo "❌ Deployment failed!" - echo "Check the logs above for details" + echo "❌ Deployment failed! Check logs above." - name: Rollback on Failure if: failure() @@ -155,18 +140,13 @@ jobs: port: ${{ secrets.SERVER_PORT || 22 }} script: | echo "πŸ”„ Rolling back to previous version..." - if [ -d "/root/ttbackend-backup" ]; then echo "πŸ“¦ Restoring backend from backup..." - cd /root - rm -rf ttbackend - cp -r ttbackend-backup ttbackend - cd ttbackend - - echo "▢️ Restarting backend..." - pm2 restart turbotrades-backend + rsync -a --delete /root/ttbackend-backup/ /root/ttbackend/ + cd /root/ttbackend + echo "▢️ Restarting backend..." + pm2 start ecosystem.config.js --env production pm2 save - echo "βœ… Rollback complete" else echo "❌ No backup found!"