Introducción: Despliegue Automático con Firebase y GitHub Actions
El despliegue manual es el enemigo de la productividad y la fiabilidad. Cada vez que ejecutas
firebase deploy desde tu terminal, introduces el riesgo de errores humanos: olvidar
hacer el build, desplegar desde el branch equivocado, o saltar los tests.
Firebase Hosting es una plataforma de hosting para aplicaciones web estáticas y dinámicas que ofrece CDN global, certificados SSL automáticos, preview channels para las Pull Requests, y rollback instantáneo.
Qué Aprenderás en Este Artículo
- Cómo configurar Firebase CLI e inicializar un proyecto
- La estructura del archivo
firebase.jsony sus opciones - Cómo crear preview channels automáticos para las Pull Requests
- El workflow completo para el despliegue en producción
- Estrategias de rollback para gestionar errores en producción
- Cómo configurar un dominio personalizado
- Headers de caching y reglas de redirect
- Comparación entre Firebase Hosting y las alternativas
1. Setup de Firebase CLI
El primer paso es instalar y configurar la Firebase CLI.
2. Configuración firebase.json
El archivo firebase.json es el corazón de la configuración de Firebase Hosting.
Secciones Clave de firebase.json
| Sección | Propósito | Detalle |
|---|---|---|
public | Directorio de archivos a servir | Debe corresponder al output del build Angular |
rewrites | Routing SPA | Todas las solicitudes se redirigen a index.html |
headers | Caching y seguridad | Cache agresiva para assets con hash, headers de seguridad globales |
ignore | Archivos a excluir | Archivos de configuración y directorios ocultos |
3. Preview Channels para las Pull Requests
Los preview channels son una de las funcionalidades más potentes de Firebase Hosting. Cada Pull Request obtiene automáticamente una URL única donde es posible visualizar los cambios antes del merge.
Cómo Obtener el Firebase Service Account
- Ve a la Consola Firebase
- Selecciona el proyecto > Configuración del proyecto > Cuentas de servicio
- Haz clic en “Generar nueva clave privada”
- Descarga el archivo JSON
- Copia el contenido y añádelo como secreto de GitHub con nombre
FIREBASE_SERVICE_ACCOUNT
4. Workflow de Despliegue en Producción
El workflow de producción se ejecuta solo en los push al branch main e incluye todos los controles de calidad.
Concurrency para Despliegue en Producción
cancel-in-progress: false para el despliegue en producción. Es mejor completar el despliegue en curso
antes de iniciar uno nuevo, para evitar estados inconsistentes.
5. Estrategia de Rollback
Firebase Hosting ofrece varias estrategias para el rollback: desde la consola, via CLI, o automáticamente via GitHub Actions.
6. Configuración de Dominio Personalizado
Firebase Hosting soporta dominios personalizados con certificado SSL gratuito.
7. Headers de Caching Optimizados
Una configuración de caching correcta es fundamental para el rendimiento. Angular genera archivos con hash en el nombre que pueden ser cacheados por un año.
8. Comparación con las Alternativas
Firebase Hosting vs Alternativas
| Característica | Firebase | Vercel | Netlify | AWS S3 + CloudFront |
|---|---|---|---|---|
| Setup | Simple | Muy simple | Muy simple | Complejo |
| SSL gratuito | Sí | Sí | Sí | Sí (ACM) |
| CDN global | Sí | Sí | Sí | Sí |
| Preview deploy | Sí | Sí (automático) | Sí (automático) | Manual |
| Rollback | Instantáneo | Instantáneo | Instantáneo | Manual |
9. Testing del Despliegue en Local
Checklist Pre-Despliegue
- El build de producción se genera sin errores
- Los tests pasan todos
- El archivo
firebase.jsonapunta al directorio correcto - Los headers de caching están configurados correctamente
- Los redirects para URLs legacy están en su lugar
- El emulador local muestra el sitio correctamente
- El service account de Firebase está configurado como secreto de GitHub
- Las branch protection rules están activas
Conclusión
En este artículo hemos construido un sistema de despliegue completamente automatizado con Firebase Hosting y GitHub Actions. La ventaja principal es la confianza: cada modificación que pasa la revisión y los tests se despliega automáticamente.
En el próximo artículo abordaremos un tema crucial para la seguridad: la gestión de secretos en pipelines CI/CD.







