name: CI/CD - Francia Ocupada (La Resistencia)
run-name: Build & Deploy por ${{ gitea.actor }}

on:
  push:
    branches:
      - main
      - master
  workflow_dispatch:

permissions:
  contents: read

jobs:
  build-and-deploy:
    runs-on: [production-ready]
    
    steps:
      # PASO 1: Instalar Node.js (requerido por las acciones de GitHub)
      - name: 📦 Instalar Node.js
        shell: bash
        run: |
          echo "Verificando si Node.js está instalado..."
          if ! command -v node &> /dev/null; then
            echo "Node.js no encontrado, instalando..."
            
            if [ -f /etc/debian_version ]; then
              curl -fsSL https://deb.nodesource.com/setup_20.x | bash -
              apt-get install -y nodejs
            elif [ -f /etc/alpine-release ]; then
              apk add --no-cache nodejs npm
            else
              curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
              export NVM_DIR="$HOME/.nvm"
              [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
              nvm install 20
            fi
          else
            echo "Node.js ya está instalado: $(node --version)"
          fi
          
          node --version
          npm --version

      # PASO 2: Checkout del Código
      - name: 🚀 Checkout del Código
        uses: actions/checkout@v4
        with:
          fetch-depth: 0

      # PASO 3: Ejecutar script de deployment en el host
      - name: 🎯 Ejecutar Deployment
        shell: bash
        run: |
          echo "🚀 Ejecutando script de deployment en el host..."
          
          PROJECT_DIR="/home/marti/Documentos/Gitea/resistencia"
          
          echo "📂 Directorio del proyecto: $PROJECT_DIR"
          
          # Ir al directorio del proyecto y ejecutar deployment
          cd "$PROJECT_DIR"
          
          # Asegurarse de que el script es ejecutable
          chmod +x deploy.sh
          
          # Ejecutar el script de deployment
          # El script hará git pull para obtener los últimos cambios
          ./deploy.sh

      # PASO 4: Verificación Final
      - name: ✅ Verificación Final
        if: always()
        shell: bash
        run: |
          PROJECT_DIR="/home/marti/Documentos/Gitea/resistencia"
          cd "$PROJECT_DIR"
          
          echo "📊 Estado final de los contenedores:"
          docker compose -f docker-compose_prod.yml ps || echo "No se pudo verificar el estado"
          
          echo ""
          echo "🌐 URLs de la aplicación:"
          echo "  - Frontend: https://franciaocupada.martivich.es"
          echo "  - API: https://api.franciaocupada.martivich.es"
