Processus de compilation d'App Hosting

Firebase App Hosting utilise Cloud Build pour transformer le code source de votre application dans un format conteneurisé adapté au déploiement sur Cloud Run.

Le processus de compilation comporte les étapes clés suivantes :

  1. ubuntu : initialisation de l'espace de travail.

  2. preparer : collecte le code source et la configuration de votre application.

  3. pre-buildpack: prépare l'environnement du buildpack.

  4. build : installe les dépendances et compile votre application.

  5. publisher : finalise le conteneur de production Cloud Run.

Ces cinq étapes correspondent directement aux étapes de compilation telles qu'elles sont affichées dans Cloud Build dans la Google Cloud console :

Capture d'écran d'une vue de la console Google Cloud montrant les étapes Cloud Build

Initialisation de l'espace de travail

Cette étape correspond à l'étape de compilation ubuntu. Elle initialise l'espace de travail de compilation, en s'assurant que les autorisations de fichier appropriées sont définies pour les répertoires utilisés par les étapes de compilation suivantes.

Preparer

Cette étape est chargée de gérer la logique de précompilation. Elle lit, nettoie et écrit les variables d'environnement définies par l'utilisateur. Elle déréférence et épingle également tous les secrets spécifiés dans le fichier apphosting.yaml.

Pre-buildpack

Cette étape prépare l'environnement pour le cycle de vie des buildpacks cloud natifs. Cela implique l'exécution d'un shim qui traduit les configurations et les variables d'environnement préparées à l'étape précédente dans le format attendu par les outils CNB.

Créer

Il s'agit du cœur du processus de compilation, chargé de générer une image de conteneur exécutable et un fichier bundle.yaml définissant votre configuration de compilation. Il utilise les buildpacks cloud natifs et le créateur de cycle de vie binaire pour empaqueter l' application de manière efficace. Pour en savoir plus sur le fichier bundle.yaml, consultez GitHub.

Les buildpacks sont chargés de transformer le code source de votre application en images de conteneur prêtes pour la production. Firebase App Hosting enchaîne plusieurs buildpacks pour terminer le processus de compilation :

  1. Buildpack d'environnement d'exécution : s'assure que tous les composants nécessaires à l'exécution d'une application Node.js de base sont inclus et que les dépendances sont installées.
  2. Buildpack Monorepo : configure les buildpacks suivants pour gérer différents scénarios de monorepo.
  3. Buildpack de framework : installe l'adaptateur de framework approprié (comme Angular ou Next.js) et prépare les buildpacks suivants.

    Les adaptateurs de framework sont chargés d'exécuter la commande de compilation de production et de mapper toutes les valeurs de configuration spécifiques au framework dans un format standard lisible par App Hosting.

  4. Buildpack du gestionnaire de packages : exécute l'installation des dépendances et compile l'application à l'aide de npm, yarn ou pnpm.

  5. Buildpack du bundle de sortie : définit la commande d'exécution et prépare le bundle de sortie pour l'exécution.

Éditeur

Cette dernière étape regroupe toutes les informations extraites du code source de l'application , ainsi que l'image du conteneur de compilation, et les envoie au App Hosting backend. Le backend App Hosting utilise ensuite ces informations pour configurer Cloud Run avec les configurations appropriées.

Règle de nettoyage des compilations

Firebase App Hosting applique une règle de conservation et de nettoyage automatisée des compilations. Conformément à cette règle, App Hosting conserve vos compilations réussies et les révisions Cloud Run associées des 14 derniers jours. De plus, pour vous assurer de toujours disposer d'une compilation à laquelle effectuer un rollback, App Hosting conserve vos cinq dernières compilations et déploiements réussis, quelle que soit leur ancienneté.

App Hosting ne supprime ni ne supprime jamais une compilation qui se trouve actuellement dans votre répartition du trafic active ou qui est associée à un déploiement en cours.

Lorsque les anciennes compilations dépassent ces limites de conservation, leur état interne est défini sur EXPIRED. Vous ne pouvez pas effectuer de rollback instantané sur une compilation EXPIRED, et l'option permettant de revenir à ces compilations sera supprimée de la Firebase console. Vous devrez plutôt créer une compilation ciblant la même source (un commit Git, un conteneur dans Artifact Registry, ou un bucket Google Cloud Storage) et la déployer.

Pour économiser des ressources de compilation, vous pouvez contrôler la fréquence à laquelle vous déclenchez des déploiements automatiques. Consultez Gérer les déploiements automatiques.

En savoir plus

L'ensemble du processus de compilation App Hosting est Open Source.