name: Deploy to VPS

on:
  workflow_run:
    workflows: ["Publish to Docker Hub"]
    types: [completed]
  workflow_dispatch:

jobs:
  deploy:
    if: >-
      (github.event_name == 'workflow_dispatch' || github.event.workflow_run.conclusion == 'success')
      && vars.DEPLOY_ENABLED == 'true'
    name: Deploy OmniRoute to VPS
    runs-on: ubuntu-latest
    steps:
      - name: Deploy via SSH
        uses: appleboy/ssh-action@v1
        continue-on-error: true
        with:
          host: ${{ secrets.VPS_HOST }}
          username: ${{ secrets.VPS_USER }}
          key: ${{ secrets.VPS_SSH_KEY }}
          port: 22
          timeout: 30s
          command_timeout: 5m
          script: |
            echo "=== Updating OmniRoute ==="
            npm install -g omniroute@latest 2>&1
            INSTALLED_VERSION=$(omniroute --version 2>/dev/null || echo "unknown")
            echo "Installed version: $INSTALLED_VERSION"

            echo "=== Restarting PM2 ==="
            pm2 restart omniroute || pm2 start omniroute --name omniroute -- --port 20128
            pm2 save

            echo "=== Health Check ==="
            sleep 3
            curl -sf http://localhost:20128/api/settings > /dev/null && echo "✅ OmniRoute is healthy" || echo "❌ Health check failed"
            echo "=== Deploy complete ==="
