Cloud Build ti consente di creare trigger per creare trigger da repository ospitati su GitLab Enterprise Edition, in modo da eseguire build in risposta a eventi come push di commit o richieste di unione associate al tuo repository GitLab Enterprise Edition.
In questa pagina viene spiegato come abilitare la funzionalità di trigger su un'istanza GitHub Enterprise Edition. Scopri di più sui trigger di Cloud Build e sui repository Cloud Build.
Prima di iniziare
-
Enable the Cloud Build and Secret Manager APIs.
- Segui le istruzioni per connettere un host GitLab Enterprise Edition.
- Segui le istruzioni per connettere un repository GitLab Enterprise Edition.
Crea un trigger GitLab Enterprise Edition
Console
Per creare un trigger GitLab Enterprise Edition utilizzando la console Google Cloud:
Apri la pagina Attivatori:
Seleziona il tuo progetto Google Cloud dalla parte superiore della pagina e fai clic su Apri.
Fai clic su Crea trigger.
Inserisci le seguenti impostazioni di attivazione:
Nome: il nome dell'attivatore.
Regione: seleziona la regione per l'attivatore.
- Se il file di configurazione della build associato al trigger specifica un pool privato, Cloud Build utilizza il pool privato per eseguire la build. In questo caso, la regione specificata nel trigger deve corrispondere a quella in cui hai creato il pool privato.
- Se il file di configurazione della build associato al trigger non specifica un pool privato, Cloud Build utilizza il pool predefinito per eseguire la build nella stessa regione del trigger.
(Facoltativo) Descrizione: una descrizione dell'attivatore.
Evento: seleziona l'evento del repository per richiamare il trigger.
Push al ramo: imposta il trigger per avviare una build sui commit in un ramo specifico.
Esegui il push del nuovo tag: imposta l'attivatore in modo che avvii una build sui commit che contengono un determinato tag.
Richiesta di pull: imposta il trigger per avviare una build sui commit in una richiesta di unione.
Origine: seleziona 2a generazione come fonte.
Repository: dall'elenco dei repository disponibili, seleziona il repository desiderato. Per connettere un nuovo repository, vedi Connettersi a un repository GitLab Enterprise Edition.
Ramo o Tag: specifica un'espressione regolare con il valore del ramo o del tag da associare. Per informazioni sulla sintassi accettabile delle espressioni regolari, consulta la sezione sintassi RE2.
Controllo dei commenti: se hai selezionato Richiesta di pull come Evento, scegli una delle seguenti opzioni per controllare se una build verrà eseguita automaticamente dal trigger:
Obbligatorio tranne per proprietari e collaboratori: quando una richiesta di unione viene creata o aggiornata da un proprietario o un collaboratore del repository, l'attivatore esegue automaticamente le build. Se un collaboratore esterno avvia l'azione, le build verranno eseguite solo dopo che un proprietario o un collaboratore commenta
/gcbrun
nella richiesta di unione.Obbligatorio: quando una richiesta di unione viene creata o aggiornata da un collaboratore, le build vengono eseguite solo dopo che un proprietario o un collaboratore commenta
/gcbrun
la richiesta di unione. Le build vengono eseguite ogni volta che viene apportata una modifica a una richiesta di unione.Non obbligatoria: quando una richiesta di unione viene creata o aggiornata da qualsiasi collaboratore, le build vengono eseguite automaticamente dagli attivatori.
Configurazione: seleziona il file di configurazione della build che si trova nel repository o configura la build in linea sul trigger.
Tipo: seleziona il tipo di configurazione da utilizzare per la build.
- File di configurazione di Cloud Build (yaml o json): utilizza un file di configurazione di compilazione per la tua configurazione.
- Dockerfile: utilizza un
Dockerfile
per la configurazione.
Posizione: specifica la località per la configurazione.
Repository: se il file di configurazione si trova nel tuo repository, fornisci il percorso del file di configurazione della build o la directory
Dockerfile
e un nome per l'immagine risultante. Se la configurazione èDockerfile
, puoi specificare facoltativamente un timeout per la build. Dopo aver fornitoDockerfile
e il nome dell'immagine, vedrai un'anteprima del comandodocker build
che verrà eseguita dalla build.In linea: se hai selezionato File di configurazione di Cloud Build (yaml o json) come opzione di configurazione, puoi specificare la configurazione di compilazione in linea. Fai clic su Apri editor per scrivere il file di configurazione della build nella console Google Cloud utilizzando la sintassi YAML o JSON. Fai clic su Fine per salvare la configurazione della build.
Fai clic su Crea per creare il trigger di GitLab Enterprise Edition.
gcloud
Per creare trigger GitLab Enterprise Edition utilizzando i comandi gcloud
, esegui questo comando:
gcloud builds triggers create gitlab \
--name=TRIGGER_NAME \
--repository=projects/PROJECT_ID/locations/REGION/connections/CONNECTION_NAME/repositories/REPO_NAME \
--branch-pattern=BRANCH_PATTERN # or --tag-pattern=TAG_PATTERN \
--build-config=BUILD_CONFIG_FILE \
--region=REGION
Dove:
- TRIGGER_NAME è il nome dell'attivatore.
- PROJECT_ID è l'ID del tuo progetto Google Cloud.
- REGION è la regione del trigger.
- CONNECTION_NAME è il nome della tua connessione GitLab Enterprise Edition.
- REPO_NAME è il nome del tuo repository
- BRANCH_PATTERN è il nome del ramo nel repository per richiamare la build.
- TAG_PATTERN è il nome del tag nel repository per richiamare la build.
- BUILD_CONFIG_FILE è il percorso del file di configurazione della build.
Condivisione dei dati
I dati inviati a GitLab Enterprise Edition da Cloud Build ti consentono di identificare i trigger per nome e visualizzare i risultati delle build nei tuoi repository GitLab Enterprise Edition.
I seguenti dati sono attualmente condivisi tra Cloud Build e il tuo host GitLab Enterprise Edition:
- ID progetto Cloud
- Nome trigger
Passaggi successivi
- Scopri come gestire i trigger di build.
- Scopri come creare repository da GitLab Enterprise Edition in una rete privata.
- Scopri come eseguire deployment blu/verde su Compute Engine.