Crea repository da GitLab Enterprise Edition

Cloud Build ti consente di creare trigger per la creazione da repository ospitati su GitLab Enterprise Edition. Puoi eseguire build in risposta a eventi come push di commit o richieste di merge associate al tuo repository GitLab Enterprise Edition.

Questa pagina spiega come attivare i trigger di build per un'istanza di GitLab Enterprise Edition. Per ulteriori informazioni, consulta Trigger Cloud Build e Repository Cloud Build.

Prima di iniziare

Segui le istruzioni per connetterti a un host GitLab Enterprise Edition.
  • Enable the Cloud Build and Secret Manager APIs.

    Enable the APIs

Per creare un trigger per un repository GitLab Enterprise Edition, devi disporre di una connessione tra Google Cloud e il tuo repository. Per creare una connessione tramite l'app GitLab Enterprise Edition in Google Cloud, consulta Connettersi a un repository GitLab Enterprise Edition.

Creare un trigger GitLab Enterprise Edition

Questa sezione spiega come creare un trigger e collegarlo all'installazione di GitLab Enterprise.

Console Google Cloud

Per creare trigger GitLab Enterprise Edition utilizzando la console Google Cloud :

  1. Apri la pagina Trigger:

    Apri la pagina Trigger

  2. Seleziona il tuo Google Cloud progetto dalla parte superiore della pagina e fai clic su Apri.

  3. Fai clic su Crea trigger.

  4. Inserisci le seguenti impostazioni del trigger:

    • Nome: un nome per il trigger.

    • Regione: seleziona la regione per il trigger.

      • 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 del trigger.

    • Evento: seleziona l'evento del repository per richiamare il trigger.

      • Push a un ramo: imposta il trigger per avviare una build quando vengono eseguiti commit a un ramo specifico.

      • Push new tag: imposta il trigger per avviare una build sui commit che contengono un tag specifico.

      • Richiesta di pull: imposta il trigger per avviare una build in base ai commit a una richiesta di unione.

    • Origine: configura le informazioni sul repository GitLab Enterprise Edition:

      • Servizio di repository: seleziona Cloud Build.

      • Generazione del repository: seleziona Developer Connect come origine.

      • Repository: seleziona il repository dall'elenco dei repository disponibili.

      • Branch o Tag: specifica un'espressione regolare con il valore del ramo o del tag da soddisfare. Per informazioni sulla sintassi accettabile delle espressioni regolari, vedi sintassi RE2.

      • Controllo dei commenti: se hai selezionato Richiesta di pull come Evento, scegli una delle seguenti opzioni per controllare se una build viene eseguita automaticamente dal trigger:

        • Obbligatorio tranne che per proprietari e collaboratori: quando una richiesta pull viene creata o aggiornata da un proprietario o collaboratore del repository, le build vengono eseguite automaticamente dal trigger. Se un collaboratore esterno avvia l'azione, le build vengono eseguite solo dopo che un proprietario o un collaboratore commenta /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 richiesto: quando una richiesta pull viene creata o aggiornata da qualsiasi collaboratore, le build vengono eseguite automaticamente dai trigger.

    • Configurazione: seleziona il file di configurazione della build che si trova nel repository o configura la build inline nel 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 della build per la configurazione.
        • Dockerfile: utilizza un Dockerfile per la configurazione.
      • Posizione: specifica la posizione per la configurazione.

        • Repository: se il file di configurazione si trova nel repository, fornisci la posizione del file di configurazione della build o della directory Dockerfile e un nome per l'immagine risultante. Se la tua configurazione è un Dockerfile, puoi facoltativamente fornire un timeout per la build. Dopo aver fornito il Dockerfile e il nome dell'immagine, vedrai un'anteprima del comando docker build che verrà eseguito dalla build.

        • Inline: 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 di configurazione della build nella consoleGoogle Cloud utilizzando la sintassi YAML o JSON. Fai clic su Fine per salvare la configurazione della build.

  5. Fai clic su Crea per creare il trigger GitLab Enterprise Edition.

Interfaccia a riga di comando gcloud

Per creare trigger GitLab Enterprise Edition 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 è l'ID progetto Google Cloud .
  • REGION è la regione del trigger.
  • CONNECTION_NAME è il nome della tua connessione GitLab Enterprise Edition.
  • GIT_REPOSITORY_LINK è il link al tuo repository Git.
  • BRANCH_PATTERN è il nome del ramo nel tuo repository su cui richiamare la build.
  • TAG_PATTERN è il nome del tag nel tuo repository per richiamare la build.
  • BUILD_CONFIG_FILE è il percorso del file di configurazione della build.
  • SERVICE-ACCOUNT è il account di servizio da utilizzare per le operazioni di trigger e build.

API

Per creare un trigger GitLab Enterprise Edition con l'API, utilizza il seguente modello JSON:

{
    "filename": "cloudbuild.yaml",
    "name": "curl-trigger",
    "description": "curl trigger",
    "developer_connect_config" { 
      "git_repository_link": "PROJECT_ID/locations/REGION/connections/CONNECTION_NAME/gitRepositoryLinks/REPO_NAME",
      "git_repository_link_type": "GITLAB_ENTERPRISE",
      // Field filter must be only one of the following:
      "pullRequest": "PULL_REQUEST_FILTER",
      "push": "PUSH_FILTER"
   }
}

Dove:

  • PROJECT_ID è l'ID progetto Google Cloud .
  • REGION è la regione del trigger.
  • CONNECTION_NAME è il nome della tua connessione GitLab Enterprise Edition.
  • GIT_REPOSITORY_LINK è il link al tuo repository Git.
  • "REPO_NAME" è il nome del tuo repository.
  • "PULL_REQUEST_FILTER" è un'istanza di PullRequestFilter, che definisce il filtro che consente a Cloud Build di attivare una build quando viene effettuata una richiesta di pull corrispondente in GitLab Enterprise Edition.
  • "PUSH_FILTER" è un'istanza di PushFilter, che definisce il filtro che consente a Cloud Build di attivare una build quando viene eseguito un push corrispondente in GitLab Enterprise Edition.

Inserisci questo 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 progetto Google Cloud .
  • PROJECT_ID è l'ID progetto Google Cloud .

Condivisione dei dati

I dati inviati a GitLab Enterprise Edition da Cloud Build ti aiutano a identificare i trigger per nome e a visualizzare i risultati della build nei repository GitLab Enterprise Edition.

I seguenti dati vengono condivisi tra Cloud Build e l'host GitLab Enterprise Edition:

  • Google Cloud ID progetto
  • Nome trigger

Passaggi successivi