Crea repository da Bitbucket Server

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

Questa pagina spiega come attivare i trigger di build per un'istanza di Bitbucket Server. Per maggiori informazioni, consulta Trigger Cloud Build e Repository Cloud Build.

Prima di iniziare

Segui le istruzioni per connetterti a un host Bitbucket Server.

  • Abilita le API Cloud Build e Secret Manager, se non sono già abilitate.

    Ruoli richiesti per abilitare le API

    Per abilitare le API, devi disporre dell'autorizzazione serviceusage.services.enable. Se hai creato il progetto, probabilmente disponi già di questa autorizzazione tramite il ruolo Proprietario (roles/owner). In caso contrario, puoi ottenere questa autorizzazione tramite il ruolo Amministratore utilizzo dei servizi (roles/serviceusage.serviceUsageAdmin). Scopri come concedere i ruoli.

    Abilita le API

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

Crea un trigger Bitbucket Server

Questa sezione spiega come connettere i repository Bitbucket Server a Cloud Build e creare un trigger per richiamare automaticamente le build nei repository connessi. Se vuoi utilizzare i trigger Bitbucket Server in una rete privata, consulta Creare repository da Bitbucket Server in una rete privata.

Console Google Cloud

Per creare trigger Bitbucket Server utilizzando la console Google Cloud :

  1. Apri la pagina Trigger nella console Google Cloud .

    Apri la pagina Trigger

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

  3. Fai clic su Crea trigger.

  4. Inserisci le seguenti impostazioni del trigger:

    • Nome: inserisci un nome per l'attivatore.

    • 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 alla regione 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.

    • Descrizione (facoltativo): inserisci 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 nuovo tag: imposta l'attivatore 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 di una richiesta di pull.

    • Origine: configura le informazioni sul repository Bitbucket Server:

      • Servizio di repository: seleziona i repository Cloud Build.

      • Generazione del repository: seleziona 2ª generazione 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, consulta 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 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 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 di 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 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 della build per la configurazione.
      • Dockerfile: utilizza un Dockerfile per la configurazione.
    • Posizione: specifica la posizione della 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 Dockerfile e il nome dell'immagine, vedrai un'anteprima del comando docker build per la tua build.

      • Inline: se hai selezionato File di configurazione di Cloud Build (yaml o json) come opzione di configurazione, puoi specificare la configurazione di compilazione inline. 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 Bitbucket Cloud.

gcloud CLI

Per creare trigger Bitbucket Server utilizzando i comandi gcloud, esegui il seguente comando:

    gcloud builds triggers create bitbucketserver \
      --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 \
      --service-account=SERVICE-ACCOUNT

Dove:

  • TRIGGER_NAME è il nome del trigger.
  • PROJECT_ID è l'ID progetto Google Cloud .
  • REGION è la regione del trigger.
  • CONNECTION_NAME è il nome della connessione Bitbucket Server.
  • REPO_NAME è il nome del repository.
  • 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 Bitbucket Server con l'API, utilizza il seguente modello JSON:

{
    "filename": "cloudbuild.yaml",
    "name": "curl-trigger",
    "description": "curl trigger",
    "repository_event_config": {
      "repository": "REPO_NAME",
      "repository_type": "BITBUCKET_SERVER",
      // Field filter must be only one of the following:
      "pullRequest": "PULL_REQUEST_FILTER",
      "push": "PUSH_FILTER"
    }
}

Dove:

  • "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 Bitbucket Server.
  • "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 Bitbucket Server.

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 Bitbucket Server da Cloud Build ti aiutano a identificare i trigger per nome e a visualizzare i risultati della build su Bitbucket Server.

I seguenti dati sono condivisi tra Cloud Build e Bitbucket Server:

  • ID progettoGoogle Cloud
  • Nome trigger

La condivisione dei dati è attivata automaticamente per Bitbucket Server.

Passaggi successivi