Files
SIB/.github/workflows/deploy-frontend.yml

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'