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 l'attivatore per eseguire il deployment del flusso di lavoro in caso di qualsiasi modifica al repository di origine o solo quando la modifica soddisfa determinati criteri.
Questo approccio può aiutarti a gestire il ciclo di vita del deployment. Ad esempio, può eseguire il deployment delle modifiche a un flusso di lavoro in un ambiente di gestione temporanea, eseguire test dell'ambiente e poi implementare in modo incrementale queste modifiche nell'ambiente di produzione.
Prima di iniziare
Queste istruzioni presuppongono che tu abbia
Ruolo Editor Cloud Build
(roles/cloudbuild.builds.editor
) nel tuo progetto Google Cloud per
possono creare trigger. È necessario anche un flusso di lavoro in un repository di codice sorgente,
GitHub o Bitbucket.
Console
Abilitare le API Cloud Build e Workflows.
Concedi il ruolo Amministratore flussi di lavoro (
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
) all'account di servizio predefinito di Compute Engine all'account di servizio Cloud Build. Se hai aver abilitato l'API Compute Engine, l'account di servizio predefinitoPROJECT_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 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 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 flussi di lavoro (
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 account Google Cloud progetto.Concedi il ruolo Utente account di servizio (
roles/iam.serviceAccountUser
) all'account di servizio predefinito di Compute Engine all'account di servizio Cloud Build. Se hai aver abilitato l'API Compute Engine, l'account di servizio predefinitoPROJECT_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 origine
Devi connettere Cloud Build al tuo repository di origine in modo Cloud Build può 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 ai Trigger di Cloud Build pagina:
Se necessario, seleziona il progetto e fai clic su Apri.
Dall'elenco Regione, seleziona la regione in cui vuoi creare il trigger.
Fai clic su Connetti repository.
Seleziona il repository 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, ti viene chiesto di autorizzare l'account Per continuare, accedi all'app GitHub di Cloud Build per accedere al tuo account GitHub.
Dall'elenco dei repository disponibili, seleziona quello desiderato e quindi fai clic su OK.
Per i repository esterni come GitHub e Bitbucket, devi avere autorizzazioni a livello di proprietario per il progetto Google Cloud in cui funziona.
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 al fine di automatizzare le build del codice sorgente nel repository, fai clic su Crea un trigger. In caso contrario, fai clic su Fine.
Crea un file di configurazione Cloud Build
Un file di configurazione di compilazione definisce i campi necessari quando si utilizza un un trigger di build per avviare una build. Crea il file di configurazione nella radice del progetto e la scrivi utilizzando YAML o JSON.
Ad esempio, il seguente file di configurazione esegue il deployment di un flusso di lavoro di test ed esegue il deployment utilizza uno script per controllare l'output. Se il test viene superato, il flusso di lavoro viene eseguito:
$BRANCH_NAME
e $SHORT_SHA
variabili di sostituzione
vengono compilate da Cloud Build quando una build viene attivata da un
repository Git. Rappresentano il nome della filiale; le prime sette
rispettivamente dell'ID commit associato alla build.
La variabile di sostituzione $_WORKFLOW_NAME
consente di riutilizzare un file di configurazione con valori di variabile diversi. Puoi specificarne il valore quando crei l'attivatore della compilazione.
Per ulteriori informazioni, consulta la pagina Creare un file di configurazione build.
Crea un trigger di build
Puoi automatizzare il deployment del flusso di lavoro creando un del trigger di Cloud Build.
Per creare un attivatore di compilazione per il file di configurazione nella sezione precedente:
Nella console Google Cloud, vai a Cloud Build Pagina Trigger:
Fai clic su Crea trigger.
Nel campo Nome, inserisci un nome per il trigger.
In Evento, seleziona l'evento per richiamare l'attivatore.
Ad esempio: push su un branch
In Origine, seleziona il tuo repository e il nome del ramo o del tag che farà partire il trigger. Puoi utilizzare un'espressione regolare per specificare corrispondono a un ramo o tag.
Ad esempio:
GoogleCloudPlatform/workflows-demos
(repository) e^main$|^staging$
(corrisponde ai ramimain
estaging
)Espandi la sezione Mostra i filtri dei file inclusi e ignorati e specifica il tuo flusso di lavoro come file incluso in modo che, quando viene modificato, venga invocata una compilazione.
Ad esempio:
gitops/workflow.yaml
In Configurazione, seleziona File di configurazione 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.yaml
Se vuoi, per aggiungere una variabile di sostituzione, fai clic su Aggiungi variabile e specificare 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 modifiche a un flusso di lavoro nel ramo specificato dell'istanza Git repository, attiverà automaticamente Cloud Build per il deployment un flusso di lavoro di machine learning.
Per ulteriori informazioni, vedi Crea e gestisci i trigger di build.
Testa il trigger di build
Puoi testare l'attivatore di compilazione e il file di configurazione delle sezioni precedenti.
Nel ramo
staging
del repository Git, modificaworkflow.yaml
e cambiaHello World
inBye World
:Esegui il commit ed esegui il push della modifica al ramo
staging
.git add workflow.yaml git commit -m "Update workflow.yaml in staging" git push
Il trigger di Cloud Build viene eseguito e avvia una build.
Per confermare l'esito positivo della build, nella console Google Cloud vai a alla pagina Cronologia build:
Al termine di una build, Cloud Build fornisce uno stato complessivo per la build e per ogni singolo passaggio di build. Per ulteriori informazioni, vedi Visualizza i risultati della build.
Per confermare che sia stato eseguito il deployment di un flusso di lavoro gestione temporanea, nella console Google Cloud: Vai alla pagina Flussi di lavoro:
Dovresti vedere un flusso di lavoro denominato
workflows-gitops-staging
.Per eseguire il deployment del flusso di lavoro gestione temporanea in produzione, unisci il ramo
staging
a il ramomain
:git checkout main git merge staging git push
Tieni presente che, poiché
test-main.sh
si aspettaHello World
nell'output del flusso di lavoro, la compilazione non andrà a buon fine:Per eseguire correttamente il deployment di un flusso di lavoro di produzione, nel ramo
staging
, modifica nuovamenteworkflow.yaml
e ripristina la stringaHello World
.Esegui il commit e il push della modifica al ramo
staging
, quindi unisci la modifica Ramostaging
al ramomain
.Per verificare che sia stato eseguito il deployment di un flusso di lavoro di produzione, nella console Google Cloud: vai alla pagina Flussi di lavoro:
Dovresti vedere un flusso di lavoro denominato
workflows-gitops-main
.
Passaggi successivi
- Scopri di più su Cloud Build.
- Scopri come risolvere gli errori di compilazione.
- Scopri come risolvere i problemi di Workflows.