name: Deploy to Dev on: push: branches: [ main, master, develop, dev ] jobs: deploy-dev: runs-on: ubuntu-latest steps: - name: Deploy to Dev Server uses: appleboy/ssh-action@v1.0.0 with: host: ${{ secrets.DEV_HOST }} username: ${{ secrets.DEV_USER }} key: ${{ secrets.SSH_PRIVATE_KEY }} use_insecure_cipher: true debug: true script_stop: true script: | set -e cd /var/www/platform/dev echo "đŸ“Ļ Pulling latest changes from repository..." git pull origin main || git pull origin master || git pull origin develop || git pull origin dev || true echo "🔄 Restarting Docker services..." docker compose restart echo "📊 Running migrations (if needed)..." docker compose exec -T web python manage.py migrate || true echo "📁 Collecting static files (if needed)..." docker compose exec -T web python manage.py collectstatic --noinput --clear || echo "âš ī¸ collectstatic failed, but continuing..." echo "✅ Dev deployment completed successfully" echo "â„šī¸ You can continue working directly on the server" - name: Health Check uses: appleboy/ssh-action@v1.0.0 with: host: ${{ secrets.DEV_HOST }} username: ${{ secrets.DEV_USER }} key: ${{ secrets.SSH_PRIVATE_KEY }} use_insecure_cipher: true debug: true script_stop: true script: | echo "âŗ Waiting for services to start..." sleep 15 echo "📊 Checking Docker containers status..." docker compose ps echo "đŸĨ Checking health endpoint..." for i in {1..5}; do if curl -f http://localhost:8124/health/ > /dev/null 2>&1; then echo "✅ Health check passed" exit 0 fi echo "Attempt $i failed, retrying in 5 seconds..." sleep 5 done echo "âš ī¸ Health check failed, but deployment completed" curl http://localhost:8124/health/ || echo "Health endpoint not available"