name: 🚀 Deploy Frontend → Firebase Hosting

# Se activa en cada push a la rama main
# SOLO cuando hay cambios en el frontend (no re-despliega si solo cambió el backend)
on:
  push:
    branches:
      - main
    paths:
      - 'frontend/**'
      - '.github/workflows/deploy-frontend.yml'

jobs:
  build-and-deploy:
    name: Build & Deploy a Firebase
    runs-on: ubuntu-latest
    defaults:
      run:
        working-directory: frontend

    steps:
      # 1. Clonar el repositorio
      - name: 📥 Checkout del repositorio
        uses: actions/checkout@v4

      # 2. Configurar Node.js
      - name: ⚙️  Setup Node.js 22
        uses: actions/setup-node@v4
        with:
          node-version: '22'
          cache: 'npm'
          cache-dependency-path: frontend/package-lock.json

      # 3. Instalar dependencias
      - name: 📦 Instalar dependencias (npm ci)
        run: npm ci

      # 4. Crear el archivo .env.production con las variables del repositorio
      #    Estas variables las defines en: GitHub → Settings → Secrets and variables → Actions
      - name: 🔐 Crear .env.production desde GitHub Secrets
        run: |
          echo "VITE_API_URL=${{ secrets.VITE_API_URL }}" > .env.production
          echo "VITE_GOOGLE_MAPS_API_KEY=${{ secrets.VITE_GOOGLE_MAPS_API_KEY }}" >> .env.production

      # 5. Compilar el frontend para producción
      - name: 🔨 Build de producción (Vite)
        run: npm run build

      # 6. Deploy a Firebase Hosting
      - name: 🚀 Deploy a Firebase Hosting
        uses: FirebaseExtended/action-hosting-deploy@v0
        with:
          repoToken: ${{ secrets.GITHUB_TOKEN }}
          firebaseServiceAccount: ${{ secrets.FIREBASE_SERVICE_ACCOUNT }}
          channelId: live
          projectId: sibu2-0-transport-2026
          entryPoint: './frontend'
