Nella maggior parte dei casi, ti consigliamo di utilizzare i rollout automatici o quelli attivati manualmente dalla console Firebase. Tuttavia, potresti avere bisogno di un flusso di deployment più personalizzato. App Hosting offre diverse opzioni per il deployment personalizzato.
Eseguire il deployment dall'origine con l'interfaccia a riga di comando Firebase
Firebase CLI 14.4.0 e versioni successive ti consente di eseguire il push del codice sorgente e della configurazione dell'app direttamente dalla macchina locale a Firebase. Questa opzione è utile se hai altri deployment Firebase (ad esempio regole di sicurezza o funzioni) e vuoi eseguire il deployment della tua app web e dei servizi di backend con un singolo comando dell'interfaccia a riga di comando.
Durante il deployment, App Hosting carica il codice sorgente in un bucket Cloud
Storage, esegue il comando di build del framework in Cloud Build ed esegue il deployment
degli artefatti finali in Cloud Run e Cloud CDN. App Hosting utilizza lo stesso
processo di build per i deployment da origine locale e per i deployment da
GitHub. Se nel progetto è presente un file .gitignore, i file
e le cartelle elencati vengono esclusi dal deployment.
Per eseguire il deployment dell'app dall'origine locale:
- Esegui
firebase init apphostingnella directory del progetto locale. - Al prompt, seleziona Utilizza un progetto esistente, quindi seleziona il progetto Firebase scelto.
Seleziona un backend nuovo o esistente su cui eseguire il deployment. Questo passaggio configura i deployment di App Hosting per la directory locale, richiedendoti le informazioni App Hosting necessarie per eseguire il deployment dell'app:
- L'ID del backend su cui eseguire il deployment
- La regione su cui eseguire il deployment (se crei un nuovo backend)
- Il percorso della directory principale del codice dell'applicazione
App Hosting salva le preferenze di deployment in
firebase.json(creando il file nel progetto locale, se non esiste). Una volta completata l'inizializzazione, puoi eseguirefirebase deployper eseguire il deployment del codice sorgente in App Hosting.
Se hai configurato i deployment da origine locale per più backend (ovvero se in firebase.json sono presenti più voci backendId), firebase deploy eseguirà il deployment su ciascuno di questi backend. Per eseguire il deployment su un backend specifico, utilizza
firebase deploy --only apphosting:backendId
Esempio di firebase.json
{
"apphosting": [
{
"backendId": "my-backend",
// rootDir specifies the directory containing the app to deploy, but the entire
// parent directory of firebase.json will be zipped and uploaded to ensure that
// dependencies outside of the app directory will be available at build time.
"rootDir": "./my-app",
"ignore": [
"node_modules",
".git",
"firebase-debug.log",
"firebase-debug.*.log",
"functions",
],
},
]
}
Eseguire il deployment con Terraform
Se hai bisogno di un maggiore controllo sul processo di build e sull'ambiente di deployment, puoi eseguire il deployment utilizzando Terraform. Terraform ti consente di definire e gestire le tue risorse App Hosting utilizzando file di configurazione dichiarativi e offre la possibilità di eseguire il deployment della tua immagine container precompilata direttamente in App Hosting anziché fare affidamento su App Hosting per la build dal tuo codice sorgente.
Se non hai mai utilizzato Terraform, consulta la guida Svolgere operazioni di base con Terraform e Firebase. Se hai già familiarità con Terraform, puoi iniziare a utilizzare i file di configurazione di esempio e altre App Hosting risorse.
Eseguire il deployment con Firebase Studio
Quando crei un'app web con l'agente di prototipazione delle app in Firebase Studio, puoi pubblicarla o eseguirne il deployment in Firebase App Hosting direttamente da Firebase Studio. Consulta la guida Pubblicare l'app con App Hosting.
Configurare una connessione GitHub per CI/CD
Puoi connettere un repository GitHub in qualsiasi momento nella scheda Deployment delle impostazioni di un backend nella Firebase console. In questo modo, puoi eseguire il deployment di un prototipo di app da un ambiente locale come Firebase Studio o un altro IDE e poi passare a una pipeline CI/CD automatizzata quando è tutto pronto.