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 su qualsiasi modifica al repository di origine o eseguire il deployment del flusso di lavoro 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 gestione temporanea, eseguire test nell'ambiente e quindi implementare in modo incrementale queste modifiche nell'ambiente di produzione.
Prima di iniziare
Queste istruzioni presuppongono che tu disponga del ruolo Editor Cloud Build (roles/cloudbuild.builds.editor
) nel progetto Google Cloud, in modo da poter creare trigger. Occorre anche un flusso di lavoro in un repository
di origine come GitHub o Bitbucket.
Console
Abilitare le API Cloud Build e Workflows.
Concedi il ruolo Amministratore Workflows (
roles/workflows.admin
) all'account di servizio Cloud Build:Nella console Google Cloud, vai alla pagina IAM.
Seleziona il progetto.
Nella riga relativa all'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 flussi di lavoro.
Fai clic su Salva.
Concedi il ruolo Utente account di servizio (
roles/iam.serviceAccountUser
) per l'account di servizio predefinito di Compute Engine all'account di servizio Cloud Build. Una volta abilitata l'API Compute Engine, l'account di servizio predefinito di Compute Engine èPROJECT_NUMBER-compute@developer.gserviceaccount.com
.Nella console Google Cloud, vai alla pagina Account di servizio.
Seleziona il progetto.
Fai clic sull'indirizzo email dell'account di servizio predefinito di Compute Engine (
PROJECT_NUMBER-compute@developer.gserviceaccount.com
).Fai clic sulla scheda Autorizzazioni.
Fai clic sul pulsante
Concedi l'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 Account di servizio > Utente account di servizio.
Fai clic su Salva.
gcloud
Abilitare le API Cloud Build e Workflows.
gcloud services enable cloudbuild.googleapis.com \ workflows.googleapis.com
Concedi il ruolo Amministratore Workflows (
roles/workflows.admin
) all'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.admin
Sostituisci
PROJECT_ID
con l'ID del tuo progetto Google Cloud.Concedi il ruolo Utente account di servizio (
roles/iam.serviceAccountUser
) per l'account di servizio predefinito di Compute Engine all'account di servizio Cloud Build. Una volta abilitata l'API Compute Engine, l'account di servizio predefinito di 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
Connettiti al repository di codice sorgente
Devi connettere Cloud Build al tuo repository di codice sorgente per consentire a Cloud Build di automatizzare le build in risposta agli eventi che si verificano nel repository.
Completa i seguenti passaggi per connetterti a GitHub o Bitbucket:
Nella console Google Cloud, 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.
Esegui l'autenticazione nel repository di codice sorgente con il tuo nome utente e la tua password.
Se accedi a GitHub, per continuare ti viene chiesto di autorizzare l'app GitHub di Google Cloud Build ad accedere al tuo account GitHub.
Dall'elenco dei repository disponibili, seleziona il repository che ti interessa, quindi fai clic su OK.
Per i repository esterni come GitHub e Bitbucket, devi disporre delle autorizzazioni a livello di proprietario per il progetto Google Cloud in cui stai lavorando.
Leggi il disclaimer 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 di 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 con YAML o JSON.
Ad esempio, il seguente file di configurazione esegue il deployment di un flusso di lavoro di test ed esegue un flusso di lavoro di test, dopodiché utilizza uno script per verificare l'output. Se il test ha esito positivo, 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 ramo e i primi sette caratteri dell'ID commit associato alla build.
La variabile di sostituzione $_WORKFLOW_NAME
consente di riutilizzare un file di configurazione
con valori di variabili diversi. Puoi specificarne il valore quando crei
il trigger di build.
Per maggiori informazioni, consulta Creare un file di configurazione di 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 console Google Cloud, vai alla pagina Trigger di Cloud Build:
Fai clic su Crea trigger.
Nel campo Nome, inserisci un nome per l'attivatore.
Per Evento, seleziona l'evento che deve richiamare il trigger.
Ad esempio: Push a un ramo
In Origine, seleziona il repository e il nome del ramo o del tag che avvia l'attivatore. Puoi usare un'espressione regolare per specificare una corrispondenza con un ramo o un tag.
Ad esempio:
GoogleCloudPlatform/workflows-demos
(repository) e^main$|^staging$
(corrisponde ai ramimain
estaging
)Espandi la sezione Mostra 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.yaml
In Configurazione, seleziona File di configurazione di Cloud Build (YAML o JSON) come tipo e Repository come posizione.
Nel campo Posizione file di configurazione di Cloud Build, specifica la posizione del file.
Ad esempio:
gitops/cloudbuild.yaml
Facoltativamente, 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 viene eseguito il push di qualsiasi modifica a un flusso di lavoro nel ramo specificato del repository Git, viene attivato automaticamente Cloud Build per eseguire il deployment del flusso di lavoro.
Per maggiori informazioni, consulta Creare e gestire i trigger di build.
Testa il trigger di build
Puoi testare il trigger di build e il file di configurazione delle sezioni precedenti.
Nel ramo
staging
del repository Git, modificaworkflow.yaml
e cambiaHello World
inBye World
:Esegui il commit della modifica ed esegui il push nel ramo
staging
.git add workflow.yaml git commit -m "Update workflow.yaml in staging" git push
Il trigger di Cloud Build esegue e avvia una build.
Per verificare il successo della build, vai alla pagina Cronologia build nella console Google Cloud:
Al termine, Cloud Build fornisce uno stato generale per la build e per ogni singolo passaggio della build. Per maggiori informazioni, consulta Visualizzare i risultati della build.
Per confermare che sia stato eseguito il deployment di un flusso di lavoro gestione temporanea, vai alla pagina Flussi di lavoro nella console Google Cloud:
Dovresti vedere un flusso di lavoro denominato
workflows-gitops-staging
nell'elenco.Per eseguire il deployment del flusso di lavoro gestione temporanea in produzione, unisci il ramo
staging
al ramomain
:git checkout main git merge staging git push
Tieni presente che, poiché
test-main.sh
prevedeHello World
nell'output del flusso di lavoro, la build avrà esito negativo:Per eseguire correttamente il deployment di un flusso di lavoro di produzione, nel ramo
staging
, modifica di nuovoworkflow.yaml
e cambia la stringa inHello World
.Esegui il commit della modifica ed esegui il push della modifica nel ramo
staging
, quindi unisci il ramostaging
al ramomain
.Per confermare che sia stato eseguito il deployment di un flusso di lavoro di produzione, vai alla pagina Flussi di lavoro nella console Google Cloud:
Dovresti vedere un flusso di lavoro denominato
workflows-gitops-main
nell'elenco.
Passaggi successivi
- Scopri di più su Cloud Build.
- Scopri come risolvere gli errori di generazione.
- Scopri come risolvere i problemi di Workflows.