Cloud Build ti consente di creare trigger per eseguire build da repository ospitati su GitHub. Puoi eseguire build in risposta a eventi come push di commit o richieste di unione associati al tuo repository GitHub.
Questa pagina spiega come attivare gli attivatori di compilazione per un'istanza GitHub. Per ulteriori informazioni, consulta Trigger di Cloud Build e Repository Cloud Build.
Prima di iniziare
Segui le istruzioni per collegarti a un host GitHub.-
Enable the Cloud Build API.
Per creare un trigger per un repository GitHub, devi avere una connessione tra Google Cloud e il tuo repository. Per creare una connessione tramite l'app GitHub in Google Cloud, consulta Connettersi a un repository GitHub.
Creare un trigger GitHub
Questa sezione spiega come creare un trigger e collegarlo all'installazione GitHub.
Google Cloud console
Per creare trigger di GitHub utilizzando la Google Cloud console, segui questi passaggi:
Apri la pagina Trigger nella Google Cloud console.
Seleziona il tuo Google Cloud progetto e fai clic su Apri.
Fai clic su Crea trigger.
Inserisci le seguenti impostazioni di trigger:
Nome: inserisci un nome per l'attivatore.
Regione: seleziona la regione per l'attivatore.
- Se il file di configurazione della build associato all'attivatore specifica un pool privato, Cloud Build utilizza il pool privato per eseguire la build. In questo caso, la regione specificata nell'attivatore deve corrispondere a quella in cui hai creato il pool privato.
- Se il file di configurazione della build associato all'attivatore non specifica un pool privato, Cloud Build utilizza il pool predefinito per eseguire la build nella stessa regione dell'attivatore.
(Facoltativo) Descrizione: inserisci una descrizione per l'attivatore.
Evento: seleziona l'evento del repository per richiamare l'attivatore.
Push a un ramo: imposta l'attivatore per avviare una build quando vengono eseguiti commit a un determinato ramo.
Invia nuovo tag: imposta l'attivatore per avviare una build sui commit che contengono un determinato tag.
Richiesta di pull: imposta l'attivatore per avviare una compilazione su commit di una richiesta di pull.
Origine: configura le informazioni sul tuo repository GitHub:
Servizio di repository: seleziona Cloud Build.
Generare repository: seleziona Developer Connect come origine.
Repository: dall'elenco dei repository disponibili, seleziona il repository.
Ramo o Tag: specifica un'espressione regolare con il valore del ramo o del tag da soddisfare. Per informazioni sulla sintassi accettabile delle espressioni regolari, consulta la pagina sulla sintassi RE2.
Controllo dei commenti: se hai selezionato Pull request come Evento, scegli una delle seguenti opzioni per controllare se una build viene eseguita automaticamente dall'attivatore:
Obbligatorio tranne che per proprietari e collaboratori: quando una richiesta di pull viene creata o aggiornata da un proprietario o collaboratore del repository, le build vengono eseguite automaticamente dall'attivatore. Se un collaboratore esterno avvia l'azione, le build vengono eseguite solo dopo che un proprietario o un collaboratore ha commentato
/gcbrun
la richiesta di pull.Obbligatorio: quando una richiesta di pull viene creata o aggiornata da un collaboratore, le build vengono eseguite solo dopo che un proprietario o un collaboratore ha commentato
/gcbrun
la richiesta di pull. Le build vengono eseguite ogni volta che viene apportata una modifica a una richiesta di pull.Non obbligatorio: quando una richiesta di pull viene creata o aggiornata da qualsiasi collaboratore, le build vengono eseguite automaticamente dagli attivatori.
Configurazione: seleziona il file di configurazione della build nel tuo repository remoto o crea un file di configurazione della build in linea da utilizzare per la build.
- Tipo: seleziona il tipo di configurazione da utilizzare per la build.
- Rilevato automaticamente: Cloud Build rileva automaticamente il tipo di configurazione se nel repository è presente un file
cloudbuild.yaml
oDockerfile
. - File di configurazione di Cloud Build (yaml o json): Utilizza un file di configurazione della build per la tua configurazione.
- Dockerfile: utilizza un
Dockerfile
per la configurazione. - Buildpack: utilizza i buildpack per la configurazione.
- Rilevato automaticamente: Cloud Build rileva automaticamente il tipo di configurazione se nel repository è presente un file
Posizione: specifica la posizione della configurazione.
- Repository: se il file di configurazione si trova nel
repository remoto, fornisci la posizione del
file di configurazione della build o della directory
Dockerfile
e un nome per l'immagine risultante. Se la configurazione èDockerfile
, puoi facoltativamente specificare un timeout per la build. Dopo aver fornitoDockerfile
e il nome dell'immagine, vedrai un'anteprima del comandodocker build
che verrà eseguito dalla compilazione. - In linea: se hai selezionato File di configurazione di Cloud Build (yaml o json) come opzione di configurazione, puoi specificare la configurazione della build in linea. Fai clic su Apri editor per scrivere il file della configurazione di compilazione nella consoleGoogle Cloud utilizzando la sintassi YAML o JSON. Fai clic su Fine per salvare la configurazione della build.
- Repository: se il file di configurazione si trova nel
repository remoto, fornisci la posizione del
file di configurazione della build o della directory
- Tipo: seleziona il tipo di configurazione da utilizzare per la build.
(Facoltativo) Voci di sostituzione: se hai selezionato il file di configurazione Cloud Build come opzione di configurazione della build, puoi scegliere di definire variabili di sostituzione specifiche per l'attivatore utilizzando questo campo. Ad esempio, supponiamo che tu stia creando diversi trigger in cui ogni trigger esegue il deployment dell'app in un ambiente specifico. Puoi specificare che l'app viene dispiattata in un ambiente nel file di configurazione della compilazione e poi utilizzare questo campo per definire le variabili di sostituzione che specificano in quale ambiente deve essere eseguito il deployment di questo attivatore. Per informazioni su come specificare i valori di sostituzione nei file di configurazione di compilazione, consulta Sostituzioni dei valori delle variabili.
Log di compilazione (facoltativo): seleziona la casella per inviare i log di compilazione a GitHub. Per scoprire come visualizzare i log di build, consulta Visualizzazione dei log di build.
Account di servizio: seleziona l'account di servizio da utilizzare per richiamare il trigger. Se i criteri della tua organizzazione consentono di utilizzare il account di servizio Cloud Build legacy, puoi lasciare vuoto questo campo per utilizzare il account di servizio legacy. In caso contrario, devi selezionare l'account di servizio specifico da utilizzare, anche se si tratta dell'account di servizio predefinito di Compute Engine.
Fai clic su Crea per salvare il trigger di build.
Per creare trigger GitHub utilizzando i comandi gcloud
, consulta i comandi gcloud
per la creazione di un trigger di compilazione.
Interfaccia a riga di comando gcloud
Per creare trigger GitHub utilizzando i comandi gcloud
, esegui il seguente
comando:
gcloud alpha builds triggers create developer connect
--name=TRIGGER_NAME \
--git-repository-link=projects/PROJECT_ID/locations/REGION/connections/CONNECTION_NAME/gitRepositoryLinks/REPO_NAME \
--branch-pattern=BRANCH_PATTERN # or --tag-pattern=TAG_PATTERN \
--build-config=BUILD_CONFIG_FILE \
--region=REGION \
--service-account=SERVICE-ACCOUNT
Dove:
- TRIGGER_NAME è il nome dell'attivatore.
- PROJECT_ID è il tuo Google Cloud ID progetto.
- REGION è la regione dell'attivatore.
- CONNECTION_NAME è il nome della connessione GitHub.
- GIT_REPOSITORY_LINK è il link al tuo repository Git.
- BRANCH_PATTERN è il nome del ramo nel repository su cui invocare la compilazione.
- TAG_PATTERN è il nome del tag nel repository su cui eseguire la compilazione.
- BUILD_CONFIG_FILE è il percorso del file di configurazione della build.
- SERVICE-ACCOUNT è l'account di servizio da utilizzare per le operazioni di trigger e build.
API
Per creare un trigger GitHub con l'API, utilizza il seguente modello JSON:
{
"filename": "cloudbuild.yaml",
"name": "TRIGGER_NAME",
"description": "TRIGGER_DESCRIPTION",
"serviceAccount": "SERVICE_ACCOUNT",
"github": {
"owner": "OWNER",
"name": "REPO_NAME",
"push": {
"branch": ".*"
},
},
"include_build_logs": include-build-logs-value
}
Dove:
- TRIGGER_NAME è un nome per l'attivatore.
- TRIGGER_DESCRIPTION è una descrizione dell'attivatore.
- SERVICE_ACCOUNT è l'account di servizio da utilizzare per le operazioni di trigger e build.
- OWNER è il proprietario del repository GitHub.
- REPO_NAME è il nome del repository GitHub.
- include-build-logs-value è il valore del
campo facoltativo
include_build_logs
. Se il valore di questo campo èINCLUDE_BUILD_LOGS_SPECIFIED
, i log di compilazione vengono visualizzati nel repository.
Inserisci il seguente comando curl
nel terminale:
curl -X POST -H "Authorization: Bearer "$(gcloud auth print-access-token) -H "Content-Type: application/json; charset=utf-8" -H "x-goog-user-project: PROJECT_NUMBER" https://cloudbuild.googleapis.com/v1/projects/PROJECT_ID/triggers -d @trigger.json
Dove:
- PROJECT_NUMBER è il numero del tuo Google Cloud progetto.
- PROJECT_ID è il tuo Google Cloud ID progetto.
Creare e visualizzare le modifiche
Per eseguire la compilazione utilizzando gli trigger GitHub, devi spingere e committare le modifiche nel repository di origine collegato o configurare la build sulle richieste di pull. Dopo aver archiviato le modifiche, Cloud Build compilerà il codice.
Per visualizzare le modifiche alla build su GitHub, vai alla scheda Controlli nel tuo repository.
Vedrai che Cloud Build ha creato le modifiche. Vedrai anche altri dettagli sulla compilazione, ad esempio il tempo necessario per compilare il codice e l'ID build.
Per visualizzare le modifiche alla build in Cloud Build, fai clic su Visualizza altri dettagli su Google Cloud Build. Viene visualizzata la pagina Dettagli compilazione nella Google Cloud console, dove puoi visualizzare informazioni sulla compilazione, come stato, log e passaggi di compilazione.
Condivisione dei dati
I dati inviati a GitHub da Cloud Build ti aiutano a identificare gli trigger per nome e a visualizzare i risultati della build su GitHub.
I seguenti dati sono attualmente condivisi tra Cloud Build e GitHub:
- ID progetto Cloud
- Nome trigger
- Log di build
Se hai creato attivatori prima di agosto 2020, la condivisione dei dati potrebbe non essere attivata per il tuo progetto. Puoi attivare la condivisione dei dati per tutti i trigger GitHub nel tuo progetto facendo clic su Attiva nella scheda Condivisione dei dati di Cloud Build.
Se hai attivato i controlli dello stato obbligatori per un repository GitHub, l'attivazione della condivisione dei dati potrebbe interrompere temporaneamente i controlli dello stato. Puoi modificare le configurazioni di controllo dello stato per cercare il nome dell'attivatore:
- Disattivazione di eventuali controlli obbligatori specifici di Cloud Build nel repository GitHub
- Garantire che la condivisione dei dati sia abilitata in Cloud Build
- Eseguire una nuova build in Cloud Build che pubblichi gli stati nel tuo repository
- Riattivare i controlli dello stato richiesti, selezionando il nome dell'attivatore
Passaggi successivi
- Scopri come creare e gestire i trigger di build.
- Scopri come eseguire deployment blu/verdi su Compute Engine.