Crea repository da Bitbucket Server

Cloud Build ti consente di creare trigger per eseguire build dai repository ospitati su Bitbucket Server, in modo da poter eseguire le build in risposta a eventi come push di commit o richieste di pull associate al tuo repository Bitbucket Server.

Questa pagina spiega come attivare la funzionalità di attivazione su un'istanza di Bitbucket Server.

Prima di iniziare

  • Enable the Cloud Build, Secret Manager, and Compute Engine APIs.

    Enable the APIs

Creazione di un trigger di Bitbucket Server

Questa sezione spiega come collegare i repository Bitbucket Server a Cloud Build e creare un trigger per invocare automaticamente le build nei repository collegati. Se vuoi utilizzare gli attivatori di Bitbucket Server in una rete privata, consulta Creare repository da Bitbucket Server in una rete privata per ulteriori istruzioni.

Console

Per creare un attivatore di Bitbucket Server utilizzando la console Google Cloud :

  1. Apri la pagina Trigger:

    Apri la pagina Trigger

  2. Seleziona il progetto nella parte superiore della pagina e fai clic su Apri.

  3. Fai clic su Crea trigger.

  4. Inserisci le seguenti impostazioni di trigger:

    • Nome: un nome per l'attivatore.

    • Regione: seleziona la regione per l'attivatore.

      • Se selezioni globale come regione, Cloud Build utilizza il pool predefinito per eseguire la build.
      • Se selezioni una regione non globale e 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 selezioni una regione non globale e il file di configurazione di compilazione associato all'attivatore non specifica un pool privato, Cloud Build utilizza il pool predefinito per eseguire la compilazione nella stessa regione dell'attivatore.
    • (Facoltativo) Descrizione: una descrizione dell'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 in modo da 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: seleziona 1ª generazione come origine.

      • Repository: dall'elenco dei repository disponibili, seleziona un repository. Per connettere un nuovo repository, consulta Connettersi a un repository Bitbucket Server.

      • Ramo o Tag: specifica un'espressione regolare con il valore del ramo o del tag da soddisfare.

      • Controllo dei commenti: se hai selezionato Pull request come Evento, puoi scegliere le impostazioni per controllare se gli eventi diversi dai commenti richiedono un'interazione aggiuntiva per attivare le build. Scegli una delle seguenti opzioni per controllare se una compilazione verrà eseguita automaticamente dall'attivatore:

        • Obbligatorio, tranne per proprietari e collaboratori: quando una richiesta di pull viene creata o aggiornata da un proprietario del repository o da un utente con autorizzazioni di scrittura, le build verranno eseguite automaticamente dall'attivatore. Se l'azione viene avviata da un collaboratore esterno, le compilazioni verranno eseguite solo dopo che un proprietario o un utente con autorizzazioni di scrittura avrà commentato /gcbrun la richiesta di pull. Consulta COMMENTS_ENABLED_FOR_EXTERNAL_CONTRIBUTORS_ONLY.

        • Obbligatorio: se un utente con autorizzazioni di scrittura crea una richiesta di pull e include /gcbrun nella descrizione della richiesta di pull, la build viene eseguita al momento della creazione della richiesta di pull. Quando una richiesta di pull viene creata o aggiornata da qualsiasi altro collaboratore, le build verranno eseguite solo dopo che un proprietario o un utente con autorizzazioni di scrittura avrà commentato /gcbrun la richiesta di pull. Consulta COMMENTS_ENABLED.

        • Non obbligatorio: quando una richiesta di pull viene creata o aggiornata da qualsiasi collaboratore, le build vengono eseguite automaticamente dagli attivatori. Consulta COMMENTS_DISABLED.

        In Bitbucket Server, gli eventi non relativi ai commenti includono azioni come l'apertura, la modifica e l'approvazione delle richieste di pull.

        Gli eventi relativi ai commenti, che includono l'aggiunta, la modifica e l'eliminazione dei commenti, attiveranno le build solo se il commento è stato creato da un utente con autorizzazioni di scrittura o superiori e contiene /gcbrun.

        Per ulteriori informazioni sui tipi di eventi di Bitbucket Server, consulta la documentazione di Bitbucket sulla gestione degli webhook.

    • Configurazione: seleziona il file di configurazione della build nel tuo repository o configura la build in linea nell'attivatore.

    • 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 tua 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 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 console Google Cloud utilizzando la sintassi YAML o JSON. Fai clic su Fine per salvare la configurazione della build.

  5. Fai clic su Crea per creare l'attivatore di Bitbucket Server.

gcloud

Per creare un trigger di Bitbucket Server utilizzando i comandi gcloud, devi eseguire il seguente comando gcloud builds triggers create bitbucketserver nel terminale:

gcloud builds triggers create bitbucketserver
    --name=TRIGGER_NAME \
    --project-key=PROJECT_KEY \
    --repo-slug=REPO_SLUG \
    --bitbucket-server-config-resource=projects/PROJECT_NUMBER/locations/REGION/bitbucketServerConfigs/ID \
    --branch-pattern=BRANCH_NAME \ # --tag-pattern=TAG_NAME
    --build-config=BUILD_CONFIG

Dove:

  • TRIGGER_NAME è il nome dell'attivatore.
  • PROJECT_KEY è la chiave del progetto Bitbucket Server. PROJECT_KEY è sensibile alle maiuscole.
  • REPO_SLUG è lo slug del repository Bitbucket Server. Per ulteriori informazioni, consulta la guida di Bitbucket sugli slug dei repository.
  • PROJECT_NUMBER è il numero del progetto Cloud.
  • REGION è la regione associata alla configurazione di Bitbucket Server.
  • ID è l'ID di BitbucketServerConfig.
  • BRANCH_NAME è un'espressione regolare che corrisponde al tuo ramo se vuoi impostare l'attivatore per la compilazione di determinati rami.
  • TAG_NAME è un'espressione regolare che corrisponde al tuo tag se vuoi impostare il trigger per creare determinati tag.
  • BUILD_CONFIG è il percorso del file di configurazione della build.

API

Per creare un attivatore di Bitbucket Server con l'API, utilizza il seguente modello JSON.

{
    "filename": "cloudbuild.yaml",
    "name": "curl-trigger",
    "description": "curl trigger",
    "bitbucket_server_trigger_config": {
        "repo_slug": "REPO_SLUG",
        "project_key": "PROJECT_KEY",
        "push": {
            "branch": "BRANCH_NAME" # "tag": "TAG_NAME"
        },
        "bitbucket_server_config_resource": "projects/PROJECT_NUMBER/locations/REGION/bitbucketServerConfigs/ID"
        "comment_control": "COMMENT_SETTING"
    }
}

Dove:

  • REPO_SLUG è lo slug del repository Bitbucket Server. Per ulteriori informazioni, consulta la guida di Bitbucket sugli slug dei repository.
  • PROJECT_KEY è la chiave del progetto Bitbucket Server. PROJECT_KEY è sensibile alle maiuscole.
  • BRANCH_NAME è l'espressione regolare del ramo se vuoi impostare l'attivatore per creare determinati rami.
  • TAG_NAME è l'espressione regolare del tag se vuoi impostare l'attivatore per creare determinati tag.
  • PROJECT_NUMBER è il numero del progetto Cloud.
  • REGION è la regione associata alla configurazione di Bitbucket Server.
  • ID è l'ID di BitbucketServerConfig.
  • COMMENT_SETTING è l'impostazione che controlla se gli attivatori di build richiedono /gcbrun in un commento per l'esecuzione della build. Per ulteriori informazioni, consulta commentControl.

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 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 gli trigger per nome e a visualizzare i risultati della compilazione su Bitbucket Server.

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

  • ID progettoGoogle Cloud
  • Nome trigger

La condivisione dei dati è abilitata automaticamente per Bitbucket Server.

Passaggi successivi