Creazione di repository da GitHub

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.

    Enable the 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:

  1. Apri la pagina Trigger nella Google Cloud console.

    Apri la pagina Trigger

  2. Seleziona il tuo Google Cloud progetto e fai clic su Apri.

  3. Fai clic su Crea trigger.

  4. 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 o Dockerfile.
        • 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.
      • 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 fornito Dockerfile e il nome dell'immagine, vedrai un'anteprima del comando docker 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.
    • (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.

  5. 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.

Screenshot della scheda della conversazione

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