Puoi utilizzare un trigger di Cloud Build per avviare automaticamente una build ed eseguire il deployment di un flusso di lavoro da un repository Git. Puoi configurare il trigger per eseguire il deployment del flusso di lavoro per ogni modifica al repository di codice sorgente o solo quando la modifica soddisfa criteri specifici.
Questo approccio può aiutarti a gestire il ciclo di vita del deployment. Ad esempio, puoi eseguire il deployment delle modifiche a un flusso di lavoro in un ambiente di staging, eseguire test su questo ambiente e poi implementare gradualmente queste modifiche nell'ambiente di produzione.
Prima di iniziare
Queste istruzioni presuppongono che tu abbia il
ruolo Editor build Cloud
(roles/cloudbuild.builds.editor) nel tuo Google Cloud progetto in modo da poter creare trigger. Ti serve anche un flusso di lavoro in un repository di codice sorgente come GitHub o Bitbucket.
Console
Abilita le API Cloud Build e Workflows.
Concedi il ruolo Amministratore di Workflows (
roles/workflows.admin) al account di servizio Cloud Build:Nella Google Cloud console vai alla pagina IAM.
Seleziona il progetto.
Nella riga del account di servizio Cloud Build (
PROJECT_NUMBER@cloudbuild.gserviceaccount.com), fai clic su Modifica entità.Fai clic su Aggiungi un altro ruolo.
Nell'elenco Ruolo, seleziona il ruolo Amministratore di Workflows.
Fai clic su Salva.
Concedi il ruolo Utente account di servizio (
roles/iam.serviceAccountUser) sul service account predefinito Compute Engine al service account Cloud Build. Quando hai abilitato l'API Compute Engine, il account di servizio predefinito Compute Engine èPROJECT_NUMBER-compute@developer.gserviceaccount.com.Nella Google Cloud console, vai alla pagina Service account.
Seleziona il progetto.
Fai clic sull'indirizzo email del account di servizio predefinito Compute Engine (
PROJECT_NUMBER-compute@developer.gserviceaccount.com).Fai clic sulla scheda Autorizzazioni.
Fai clic sul pulsante Concedi accesso.
Per aggiungere una nuova entità, inserisci l'indirizzo email del tuo account di servizio (
SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com).Nell'elenco Seleziona un ruolo, seleziona il ruolo Service account > Utente account di servizio.
Fai clic su Salva.
gcloud
Abilita le API Cloud Build e Workflows.
gcloud services enable cloudbuild.googleapis.com \ workflows.googleapis.comConcedi il ruolo Amministratore di Workflows (
roles/workflows.admin) al account di servizio Cloud Build:PROJECT_NUMBER=$(gcloud projects describe PROJECT_ID --format='value(projectNumber)') gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:$PROJECT_NUMBER@cloudbuild.gserviceaccount.com \ --role=roles/workflows.adminSostituisci
PROJECT_IDcon l'ID del tuo Google Cloud progetto.Concedi il ruolo Utente account di servizio (
roles/iam.serviceAccountUser) sul service account predefinito Compute Engine al service account Cloud Build. Quando hai abilitato l'API Compute Engine, il account di servizio predefinito Compute Engine èPROJECT_NUMBER-compute@developer.gserviceaccount.com.gcloud iam service-accounts add-iam-policy-binding \ $PROJECT_NUMBER-compute@developer.gserviceaccount.com \ --member=serviceAccount:$PROJECT_NUMBER@cloudbuild.gserviceaccount.com \ --role=roles/iam.serviceAccountUser
Connetti al repository di codice sorgente
Devi connettere Cloud Build al repository di codice sorgente in modo che Cloud Build possa automatizzare le build in risposta agli eventi che si verificano nel repository.
Completa i passaggi indicati di seguito per connetterti a GitHub o Bitbucket:
Nella Google Cloud console, vai alla pagina Trigger di Cloud Build:
Se necessario, seleziona il progetto e fai clic su Apri.
Nell'elenco Regione, seleziona la regione in cui vuoi creare il trigger.
Fai clic su Connetti repository.
Seleziona il repository di codice sorgente in cui hai archiviato il codice sorgente.
Ad esempio: GitHub (app GitHub di Cloud Build)
Fai clic su Continua.
Autenticati al repository di codice sorgente con il tuo nome utente e la tua password.
Se accedi a GitHub, ti viene chiesto di autorizzare l'app GitHub di Google Cloud Build ad accedere al tuo account GitHub per procedere.
Nell'elenco dei repository disponibili, seleziona il repository desiderato e fai clic su OK.
Per i repository esterni come GitHub e Bitbucket, devi disporre delle autorizzazioni a livello di proprietario per il Google Cloud progetto su cui stai lavorando.
Leggi la dichiarazione di non responsabilità e seleziona la casella di controllo accanto per indicare che accetti i termini.
Fai clic su Connetti.
Per continuare a creare un trigger di build per automatizzare le build per il codice sorgente nel repository, fai clic su Crea un trigger. In caso contrario, fai clic su Fine.
Crea un file di configurazione di Cloud Build
Un file di configurazione della compilazione definisce i campi necessari quando si utilizza un trigger di build per avviare una build. Crea il file di configurazione nella directory principale del progetto e scrivilo utilizzando YAML o JSON.
Ad esempio, il seguente file di configurazione esegue il deployment e l'esecuzione di un flusso di lavoro di test, quindi utilizza uno script per controllare l'output. Se il test viene superato, viene eseguito il deployment del flusso di lavoro:
Le variabili di sostituzione $BRANCH_NAME e $SHORT_SHA
vengono compilate da Cloud Build quando una build viene attivata da un repository Git
. Rappresentano rispettivamente il nome del branch e i primi sette caratteri dell'ID commit associato alla build.
La variabile di sostituzione $_WORKFLOW_NAME ti consente di riutilizzare un file di configurazione con valori di variabile diversi. Puoi specificarne il valore quando crei il trigger di build.
Per saperne di più, consulta Crea un file di configurazione della compilazione.
Crea un trigger di build
Puoi automatizzare il deployment del flusso di lavoro creando un trigger di Cloud Build.
Per creare un trigger di build per il file di configurazione nella sezione precedente:
Nella Google Cloud console, vai alla pagina Trigger di Cloud Build:
Fai clic su Crea trigger.
Nel campo Nome, inserisci un nome per il trigger.
In Evento, seleziona l'evento per richiamare il trigger.
Ad esempio: Push a un ramo
In Origine, seleziona il repository e il nome del branch o del tag che avvierà il trigger. Puoi utilizzare un'espressione regolare per specificare una corrispondenza con un branch o un tag.
Ad esempio:
GoogleCloudPlatform/workflows-demos(repository) e^main$|^staging$(corrisponde ai branchmainestaging)Espandi la sezione Mostra i filtri dei file inclusi e ignorati e specifica il flusso di lavoro come file incluso in modo che, quando viene modificato, venga richiamata una build.
Ad esempio:
gitops/workflow.yamlIn Configurazione, seleziona File di configurazione di Cloud Build (YAML o JSON) come tipo e Repository come posizione.
Nel campo Posizione file di configurazione Cloud Build , specifica la posizione del file.
Ad esempio:
gitops/cloudbuild.yamlFacoltativamente, per aggiungere una variabile di sostituzione, fai clic su Aggiungi variabile e specifica una combinazione di chiave e valore.
Ad esempio:
_WORKFLOW_NAME(variabile) eworkflows-gitops(valore)Per salvare il trigger di build, fai clic su Crea.
Quando vengono eseguite il push delle modifiche a un flusso di lavoro nel branch specificato del repository Git, Cloud Build viene attivato automaticamente per eseguire il deployment del flusso di lavoro.
Per saperne di più, consulta Crea e gestisci trigger di build.
Testa il trigger di build
Puoi testare il trigger di build e il file di configurazione delle sezioni precedenti.
Nel branch
stagingdel repository Git, modificaworkflow.yamle cambiaHello WorldinBye World:Esegui il commit e il push della modifica al branch
staging.git add workflow.yaml git commit -m "Update workflow.yaml in staging" git pushIl trigger di Cloud Build viene eseguito e avvia una build.
Per verificare l'esito positivo della build, nella Google Cloud console vai a la pagina Cronologia build:
Al termine di una build, Cloud Build fornisce uno stato generale per la build e per ogni singolo passaggio di build. Per saperne di più, consulta Visualizza i risultati della build.
Per verificare che sia stato eseguito il deployment di un flusso di lavoro di staging, nella Google Cloud console, vai alla pagina Workflows:
Dovresti visualizzare un flusso di lavoro denominato
workflows-gitops-staging.Per eseguire il deployment del flusso di lavoro di staging in produzione, unisci il branch
stagingal branchmain:git checkout main git merge staging git pushTieni presente che, poiché
test-main.shprevedeHello Worldnell'output del flusso di lavoro, la build non andrà a buon fine:Per eseguire correttamente il deployment di un flusso di lavoro di produzione, nel branch
staging, modifica di nuovoworkflow.yamle riporta la stringa aHello World.Esegui il commit e il push della modifica al branch
staging, quindi unisci il branchstagingal branchmain.Per verificare che sia stato eseguito il deployment di un flusso di lavoro di produzione, nella Google Cloud console, vai alla pagina Workflows:
Dovresti visualizzare un flusso di lavoro denominato
workflows-gitops-main.
Passaggi successivi
- Scopri di più su Cloud Build.
- Scopri come risolvere gli errori di build.
- Scopri come risolvere i problemi relativi a Workflows.