58 lines
1.8 KiB
YAML
58 lines
1.8 KiB
YAML
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'
|