Gestisci implementazioni e release

Se hai abilitato le implementazioni automatiche, ogni volta che esegui il push di un nuovo commit nel ramo live del repository GitHub, App Hosting esegue automaticamente il deployment di una nuova versione dell'app. Puoi controllare lo stato dell'implementazione nella Firebase console o nel controllo GitHub di App Hosting.

Inoltre, App Hosting supporta le implementazioni attivate manualmente per l'integrazione CI/CD o in qualsiasi altro caso in cui vuoi forzare un'implementazione.

Visualizzare le implementazioni

La console Firebase fornisce l'accesso a informazioni dettagliate su tutte le implementazioni della tua app.

Vai a Hosting e serverless> App Hosting, quindi seleziona Visualizza per il backend di cui vuoi visualizzare le implementazioni. La scheda Implementazioni del backend mostra una tabella che elenca la cronologia di tutte le implementazioni per questo backend.

Ogni voce di implementazione contiene link al job Cloud Build e alla modifica o al commit che ha attivato l'implementazione, insieme a informazioni di base sull'autore, sulla data di creazione e sullo stato dell'implementazione.

  • Il job Cloud Build è l'ambiente di build in cui App Hosting esegue il comando di build dell'app. Puoi accedere ai log Cloud Build facendo clic sull'ID build.
  • La modifica è il commit GitHub o un'altra azione che ha attivato l'implementazione.

Attivare manualmente un'implementazione

Se vuoi attivare manualmente un'implementazione dalla sorgente GitHub senza eseguire il push di un nuovo commit, puoi creare un'implementazione dalla Firebase console o dalla Firebase CLI. Questa opzione è utile in casi come:

  • Forzare la rigenerazione dei contenuti statici.
  • Consentire a un sistema CI/CD di attivare le implementazioni.
  • Limitare le implementazioni di produzione a date o orari specifici.

Per attivare un'implementazione nella console Firebase:

  1. Nella console Firebase, vai a Hosting e serverless > App Hosting.
  2. Fai clic su Visualizza per il backend per cui vuoi creare un'implementazione.
  3. Nel riepilogo della dashboard del backend, seleziona Crea implementazione.
  4. Seleziona il ramo di cui eseguire il deployment.
  5. Seleziona il commit di cui eseguire il deployment, l'ultimo commit o un commit precedente specificato dal relativo ID commit.
  6. Seleziona Crea. Lo stato e un numero build per l'implementazione vengono visualizzati nella tabella della cronologia delle implementazioni. Al termine del processo di implementazione, questa implementazione viene visualizzata come implementazione corrente.

Per attivare un'implementazione nella Firebase CLI, esegui il comando seguente e seleziona il ramo per l'implementazione quando richiesto:

firebase apphosting:rollouts:create BACKEND_ID

In alternativa, puoi avviare un'implementazione per l'ultimo commit di un ramo specifico utilizzando l'opzione --git-branch:

firebase apphosting:rollouts:create BACKEND_ID
--git_branch BRANCH_NAME

Puoi anche creare un'implementazione con un commit specifico utilizzando l'opzione --git-commit:

firebase apphosting:rollouts:create BACKEND_ID
--git_commit COMMIT_ID

Ripristinare un'implementazione precedente

App Hosting offre due opzioni per ripristinare un'implementazione precedente:

  • Eseguire il rollback all'istante senza ricompilare
  • Ricompilare ed eseguire il rollback a una versione precedente

Creare un rollback istantaneo

A volte potrebbe essere necessario ripristinare rapidamente una versione precedente dell'app, ad esempio se hai scoperto un bug critico in un'implementazione di cui è stato eseguito il deployment di recente o se riscontri una build instabile che blocca le nuove implementazioni. In questi casi, puoi ripristinare un'immagine container esistente a tua scelta da un'implementazione precedente. Questa immagine non viene ricompilata, ma utilizza il codice e la configurazione dell'ambiente di quando è stata compilata per la prima volta.

Per creare un rollback istantaneo:

  1. Nella console Firebase, vai a Hosting e serverless > App Hosting.
  2. Fai clic su Visualizza per il backend per cui vuoi creare un rollback.
  3. Seleziona la scheda Implementazioni.
  4. Nella tabella Cronologia del backend, seleziona il menu con tre puntini per una build precedente.
  5. Seleziona Esegui il rollback a questa build e conferma.

Ricompilare ed eseguire il rollback

Se vuoi ripristinare una versione precedente dell'app, ma mantenere la configurazione attuale, puoi ricompilare l'app nell'ambito del processo di rollback. Ad esempio, se la versione più recente ha aggiornato un valore della chiave API in Secret Manager, la ricompilazione può garantire che la nuova chiave venga utilizzata nell'app dopo il rollback.

Per ricompilare ed eseguire il rollback:

  1. Nella console Firebase, vai a Hosting e serverless > App Hosting.
  2. Fai clic su Visualizza dashboard per il backend per cui vuoi creare un rollback.
  3. Seleziona la scheda Implementazioni.
  4. Seleziona Crea implementazione.
  5. Nella finestra di dialogo Crea un'implementazione, seleziona Commit precedente e poi inserisci l'ID commit della versione di cui vuoi eseguire la ricompilazione e il rollback. L'ID commit fa parte dei "Dettagli della modifica" di ogni implementazione elencata nella Cronologia delle implementazioni,racchiusa tra parentesi nell'etichetta.
  6. Seleziona Crea per avviare il rollback.

Modificare le impostazioni di implementazione

Puoi modificare il ramo live per le implementazioni e disattivare o attivare le implementazioni automatiche utilizzando i controlli nella visualizzazione Impostazioni > Deployment nella dashboard di un backend.

  1. Nella console Firebase, vai a Hosting e serverless > App Hosting.
  2. Fai clic su Visualizza per il backend in cui vuoi aggiornare le impostazioni di implementazione.
  3. Nella dashboard del backend, seleziona Impostazioni. La visualizzazione predefinita mostra informazioni su domini e domini personalizzati.
  4. Seleziona la visualizzazione Deployment. In questa visualizzazione, puoi modificare il ramo live per le implementazioni e disattivare o attivare le implementazioni automatiche. Inoltre, sono disponibili opzioni per impostare la directory root dell'app e l'ambiente per il backend (vedi Eseguire il deployment in più ambienti).