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 rollout di una nuova versione dell'app. Puoi controllare lo stato del rollout nella Firebase console o nel controllo GitHub di App Hosting.

Inoltre, App Hosting supporta i rollout attivati manualmente per l'integrazione CI/CD o in qualsiasi altro caso in cui vuoi forzare un rollout.

Visualizzare i rollout

La console Firebase fornisce l'accesso a informazioni dettagliate su tutti i rollout della tua app.

Vai a Hosting e serverless> App Hosting, quindi seleziona Visualizza per il backend di cui vuoi visualizzare i rollout. La scheda Rollout del backend mostra una tabella che elenca la cronologia di tutti i rollout per questo backend.

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

  • 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 il rollout.

Attivare manualmente un rollout

Se vuoi attivare manualmente un rollout dalla sorgente GitHub senza eseguire il push di un nuovo commit, puoi creare un rollout 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 i rollout.
  • Limitare i rollout di produzione a date o orari specifici.

Per attivare un rollout 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 rollout.
  3. Nel riepilogo della dashboard del backend, seleziona Crea rollout.
  4. Seleziona il ramo di cui eseguire il deployment.
  5. Seleziona il commit di cui eseguire il deployment, ovvero l'ultimo commit o un commit precedente specificato dal relativo ID commit.
  6. Seleziona Crea. Nella tabella della cronologia dei rollout vengono visualizzati lo stato e un numero build per il rollout. Al termine del processo di rollout, questo rollout viene visualizzato come rollout corrente.

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

firebase apphosting:rollouts:create BACKEND_ID

In alternativa, puoi avviare un rollout 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 rollout con un commit specifico utilizzando l'opzione --git-commit:

firebase apphosting:rollouts:create BACKEND_ID
--git_commit COMMIT_ID

Ripristinare un rollout precedente

App Hosting offre due opzioni per ripristinare un rollout 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 rollout di cui è stato appena eseguito il deployment o se riscontri una build instabile che blocca i nuovi rollout. In questi casi, puoi ripristinare un'immagine container esistente a tua scelta da un rollout 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 Rollout.
  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 il valore di una 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 Rollout.
  4. Seleziona Crea rollout.
  5. Nella finestra di dialogo Crea un rollout , seleziona Commit precedente , quindi 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 rollout elencato nella cronologia dei rollout,racchiuso tra parentesi nell'etichetta.
  6. Seleziona Crea per avviare il rollback.

Modificare le impostazioni di rollout

Puoi modificare il ramo live per i rollout e disattivare o attivare i rollout automatici 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 rollout.
  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 i rollout e disattivare o attivare i rollout automatici. Inoltre, sono disponibili opzioni per impostare la directory principale dell'app e l'ambiente per il backend (vedi Eseguire il deployment in più ambienti).

Gestire i rollout automatici

Per impostazione predefinita, App Hosting presuppone un elenco "obbligatorio" di tutti i file, il che significa che ogni nuovo commit nel repository attiva una nuova build e un nuovo rollout. Tuttavia, per risparmiare tempo ed evitare deployment non necessari, puoi configurare App Hosting in modo che salti le build in base ai percorsi di file specifici modificati in un commit.

Puoi configurare questa opzione in Impostazioni > Rollout > Trigger di rollout. Qui puoi lasciare vuoto il campo Percorsi obbligatori se vuoi che ogni nuovo commit nel repository attivi una nuova build e un nuovo rollout oppure puoi specificare esattamente quali directory o file devono sempre attivare un rollout. Se specifichi le directory, assicurati di aggiungere tutti i percorsi in cui le modifiche devono attivare un rollout.

Le directory o i file che aggiungi a Percorsi ignorati non attiveranno mai un rollout automatico. Nei casi in cui una sottodirectory rientri sia nell'elenco dei percorsi obbligatori sia in quello dei percorsi ignorati, non verrà attivato un rollout automatico. Se compili solo l'elenco dei percorsi ignorati, App Hosting compilerà automaticamente "*" per i percorsi obbligatori.

Uno screenshot dell'interfaccia utente descritta in questa pagina.

Se esegui il push di un commit in cui nessuno dei file modificati corrisponde ai percorsi obbligatori (o se tutte le modifiche sono escluse esplicitamente dai percorsi ignorati), App Hosting riconoscerà comunque la ricezione dell'evento GitHub, ma contrassegnerà gli stati di build e rollout come SKIPPED, e non verrà attivato alcun rollout automatico.