Firebase App Hosting usa Cloud Build para transformar el código fuente de tu aplicación en un formato alojado en contenedores adecuado para la implementación en Cloud Run.
El proceso de compilación se realiza a través de las siguientes etapas clave:
ubuntu: Inicialización del espacio de trabajo.
preparer: Recopila el código fuente y la configuración de tu aplicación.
pre-buildpack: Prepara el entorno del buildpack.
build: Instala dependencias y compila tu aplicación.
publisher: Finaliza el contenedor de producción Cloud Run.
Estos cinco pasos corresponden directamente a los pasos de compilación que se muestran en Cloud Build en la consola de Google Cloud:

Inicialización del espacio de trabajo
Esta etapa corresponde al paso de compilación de ubuntu. Inicializa el espacio de trabajo de compilación y garantiza que se establezcan los permisos de archivo correctos para los directorios que usan los pasos de compilación posteriores.
Preparador
Esta etapa se encarga de controlar la lógica previa a la compilación. Lee, limpia y escribe variables de entorno definidas por el usuario. También anula la referencia y fija cualquier
secreto especificado en el archivo apphosting.yaml.
Pre-buildpack
En este paso, se prepara el entorno para el ciclo de vida de los Cloud Native Buildpacks. Esto implica ejecutar una corrección de compatibilidad que traduzca las configuraciones y las variables de entorno preparadas en la etapa anterior al formato que esperan las herramientas de CNB.
Compilación
Este es el núcleo del proceso de compilación, responsable de generar una imagen de contenedor
ejecutable y un archivo bundle.yaml que define tu configuración de compilación.
Utiliza los paquetes de compilación nativos de la nube
y el objeto binario del creador del ciclo de vida
para empaquetar la aplicación
de manera eficiente. Puedes encontrar más información sobre el archivo bundle.yaml
en GitHub.
Los buildpacks se encargan de transformar el código fuente de tu aplicación en imágenes de contenedor listas para producción. Firebase App Hosting encadena varios buildpacks para completar el proceso de compilación:
- Buildpack de entorno de ejecución: Garantiza que se incluyan todos los componentes necesarios para ejecutar una aplicación básica de Node.js y que se instalen las dependencias.
- Buildpack de monorepo: Configura buildpacks posteriores para controlar diferentes situaciones de monorepo.
Framework Buildpack: Instala el adaptador de framework correcto (como Angular o Next.js) y prepara los buildpacks posteriores.
Los adaptadores de framework se encargan de ejecutar el comando de compilación de producción y asignar cualquier valor de configuración relevante específico del framework a un formato estándar que App Hosting pueda leer.
Buildpack del administrador de paquetes: Ejecuta la instalación de dependencias y compila la app con npm, yarn o pnpm.
Output Bundle Buildpack: Define el comando de ejecución y prepara el paquete de salida para la ejecución.
Publicador
En esta etapa final, se empaqueta toda la información extraída del código fuente de la aplicación y la imagen del contenedor de compilación, y se envía al backend de App Hosting. Luego, el backend de App Hosting usa esta información para configurar Cloud Run con los parámetros adecuados.
Política de limpieza de compilaciones
Firebase App Hosting aplica una política automatizada de retención y limpieza de compilaciones. Según esta política, App Hosting conserva tus compilaciones exitosas y sus revisiones de Cloud Run asociadas de los últimos 14 días. Además, para garantizar que siempre tengas una compilación a la que revertir, App Hosting conserva las 5 compilaciones y lanzamientos más recientes que se realizaron correctamente, sin importar su antigüedad.
App Hosting no borrará ni quitará una compilación que se encuentre actualmente en tu división de tráfico activa o que esté asociada con un lanzamiento en curso.
Cuando las compilaciones más antiguas superan estos límites de retención, su estado interno se
actualiza a EXPIRED. No puedes realizar una reversión instantánea en una compilación de EXPIRED,
y se quitará la opción para revertir a estas compilaciones de la
consola de Firebase. En su lugar, deberás
crear una compilación nueva orientada a la misma fuente
(una confirmación de Git,
un contenedor en Artifact Registry o un bucket de Google Cloud Storage) y, luego,
implementarla.
Una forma de conservar los recursos de compilación es controlar la frecuencia con la que activas los lanzamientos automáticos. Consulta Administra lanzamientos automáticos.
Más información
Todo el proceso de compilación de App Hosting es de código abierto.
- El código del buildpack se encuentra en el repositorio de buildpacks de Google Cloud.
- El código de los adaptadores de framework se encuentra en el repositorio apphosting-adapters.
- Obtén más información sobre los buildpacks nativos de la nube y Cloud Build.