Si vous avez activé les déploiements automatiques, chaque fois que vous envoyez un nouveau commit à la branche active de votre dépôt GitHub, App Hosting déploie automatiquement une nouvelle version de votre application. Vous pouvez vérifier l'état du déploiement dans la Firebase console ou dans la vérification GitHub de App Hosting.
De plus, App Hosting permet de déclencher manuellement des déploiements pour l'intégration CI/CD ou dans tout autre cas où vous souhaitez forcer un déploiement.
Afficher les déploiements
La console Firebase vous permet d'accéder à des informations détaillées sur tous les déploiements de votre application.
Accédez à Hosting & Serverless > App Hosting (Hébergement et sans serveur), puis sélectionnez View (Afficher) pour le backend dont vous souhaitez afficher les déploiements. L'onglet Rollouts (Déploiements) du backend affiche un tableau répertoriant l'historique de tous les déploiements de ce backend.
Chaque entrée de déploiement contient des liens vers la tâche Cloud Build et la modification ou le commit qui a déclenché le déploiement, ainsi que des informations de base sur l'auteur, la date de création et l'état du déploiement.
- La tâche Cloud Build est l'environnement de compilation dans lequel App Hosting exécute la commande de compilation de votre application. Vous pouvez accéder aux journaux Cloud Build en cliquant sur l'ID de compilation.
- La modification est le commit GitHub ou une autre action qui a déclenché le déploiement.
Déclencher manuellement un déploiement
Si vous souhaitez déclencher manuellement un déploiement à partir de votre source GitHub sans envoyer de nouveau commit, vous pouvez créer un déploiement à partir de la Firebase console ou de l'interface de ligne de commande Firebase. Cela est utile dans les cas suivants :
- Forcer la régénération de contenu statique.
- Permettre à un système CI/CD de déclencher des déploiements.
- Limiter les déploiements en production à des dates ou heures spécifiques.
Pour déclencher un déploiement dans la Firebase console :
- Dans la console Firebase, accédez à Hosting & Serverless > App Hosting (Hébergement et sans serveur).
- Cliquez sur View (Afficher) pour le backend pour lequel vous souhaitez créer un déploiement.
- Dans le résumé du tableau de bord du backend, sélectionnez Create rollout (Créer un déploiement).
- Sélectionnez la branche à déployer.
- Sélectionnez le commit à déployer, qu'il s'agisse du dernier commit ou d'un commit antérieur spécifié par son ID de commit.
- Sélectionnez Create (Créer). L'état et un numéro de version pour le déploiement s'affichent dans le tableau de l'historique des déploiements. Une fois le processus de déploiement terminé, ce déploiement s'affiche comme le déploiement actuel.
Pour déclencher un déploiement dans l'interface de ligne de commande Firebase, exécutez la commande suivante et sélectionnez la branche pour le déploiement lorsque vous y êtes invité :
firebase apphosting:rollouts:create BACKEND_ID
Vous pouvez également lancer un déploiement pour le dernier commit d'une branche spécifique à l'aide de l'option --git-branch :
firebase apphosting:rollouts:create BACKEND_ID
--git_branch BRANCH_NAME
Vous pouvez également créer un déploiement avec un commit spécifique à l'aide de l'option --git-commit :
firebase apphosting:rollouts:create BACKEND_ID
--git_commit COMMIT_ID
Restaurer un déploiement précédent
App Hosting vous offre deux options pour restaurer un déploiement précédent :
- Effectuer un rollback instantanément sans recompilation
- Recompiler et effectuer un rollback vers une version précédente
Créer un rollback instantané
Il peut parfois être nécessaire de revenir rapidement à une version antérieure de votre application, par exemple si vous avez découvert un bug critique dans un déploiement récemment déployé ou si vous rencontrez une compilation instable qui bloque de nouveaux déploiements. Dans ce cas, vous pouvez restaurer une image de conteneur existante de votre choix à partir d'un déploiement précédent. Cette image n'est pas recompilée, mais utilise le code et la configuration de l'environnement à partir de sa première compilation.
Pour créer un rollback instantané :
- Dans la console Firebase, accédez à Hosting & Serverless > App Hosting (Hébergement et sans serveur).
- Cliquez sur View (Afficher) pour le backend pour lequel vous souhaitez créer un rollback.
- Sélectionnez l'onglet Rollouts (Déploiements).
- Dans le tableau History (Historique) du backend, sélectionnez le menu à trois points d'une compilation précédente.
- Sélectionnez Roll back to this build (Effectuer un rollback vers cette compilation), puis confirmez.
Recompiler et effectuer un rollback
Si vous souhaitez revenir à une version antérieure de votre application tout en conservant la configuration actuelle, vous pouvez recompiler l'application dans le cadre du processus de rollback. Par exemple, si votre version la plus récente a mis à jour une valeur de clé API dans Secret Manager, la recompilation peut garantir que la nouvelle clé est utilisée dans votre application après le rollback.
Pour recompiler et effectuer un rollback :
- Dans la console Firebase, accédez à Hosting & Serverless > App Hosting (Hébergement et sans serveur).
- Cliquez sur View dashboard (Afficher le tableau de bord) pour le backend pour lequel vous souhaitez créer un rollback.
- Sélectionnez l'onglet Rollouts (Déploiements).
- Sélectionnez Create rollout (Créer un déploiement).
- Dans la boîte de dialogue Create a rollout (Créer un déploiement), sélectionnez Earlier commit (Commit antérieur), puis saisissez l'ID de commit de la version que vous souhaitez recompiler et vers laquelle vous souhaitez effectuer un rollback. L'ID de commit fait partie des "Change details" (Détails de la modification) de chaque déploiement listé dans votre Rollout history (Historique des déploiements), entre parenthèses dans le libellé.
- Sélectionnez Create (Créer) pour lancer le rollback.
Modifier les paramètres de déploiement
Vous pouvez modifier la branche active pour les déploiements et désactiver ou activer les déploiements automatiques à l'aide des commandes de la vue Settings > Deployment (Paramètres > Déploiement) du tableau de bord d'un backend.
- Dans la console Firebase, accédez à Hosting & Serverless > App Hosting (Hébergement et sans serveur).
- Cliquez sur View (Afficher) pour le backend dont vous souhaitez modifier les paramètres de déploiement.
- Dans le tableau de bord du backend, sélectionnez Settings (Paramètres). La vue par défaut affiche des informations sur les domaines et les domaines personnalisés.
- Sélectionnez la vue Deployment (Déploiement). Dans cette vue, vous pouvez modifier la branche active pour les déploiements et désactiver ou activer les déploiements automatiques. Vous pouvez également définir le répertoire racine de l'application et l'environnement du backend (voir Déployer dans plusieurs environnements).
Gérer les déploiements automatiques
Par défaut, App Hosting suppose une liste "requise" de tous les fichiers, ce qui signifie que chaque nouveau commit dans votre dépôt déclenche une nouvelle compilation et un nouveau déploiement. Toutefois, pour gagner du temps et éviter les déploiements inutiles, vous pouvez configurer App Hosting pour qu'il ignore les compilations en fonction des chemins d'accès aux fichiers spécifiques modifiés dans un commit.
Vous pouvez configurer cette option sous Settings > Rollouts > Rollout triggers (Paramètres > Déploiements > Déclencheurs de déploiement). Vous pouvez laisser le champ Required Paths (Chemins d'accès requis) vide si vous souhaitez que chaque nouveau commit dans votre dépôt déclenche une nouvelle compilation et un nouveau déploiement. Vous pouvez également spécifier exactement les répertoires ou fichiers qui doivent toujours déclencher un déploiement. Si vous spécifiez des répertoires, veillez à ajouter tous les chemins d'accès où les modifications doivent déclencher un déploiement.
Les répertoires ou fichiers que vous ajoutez à Ignored Paths (Chemins d'accès ignorés) ne déclencheront jamais de déploiement automatique. Si un sous-répertoire figure à la fois dans les listes requises et ignorées, aucun déploiement automatique ne sera déclenché. Si vous ne remplissez que la liste des chemins d'accès ignorés, App Hosting remplira automatiquement "*" pour les chemins d'accès requis.
Si vous envoyez un commit dans lequel aucun des fichiers modifiés ne correspond à vos chemins d'accès requis
(ou si toutes les modifications sont explicitement exclues par vos chemins d'accès ignorés),
App Hosting accusera toujours réception de l'événement GitHub, mais il
marquera les états de compilation et de déploiement comme SKIPPED, et aucun déploiement automatique ne sera
déclenché.