Crea repository da Bitbucket Server

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

Questa pagina spiega come abilitare la funzionalità di trigger su un'istanza Bitbucket Server.

Prima di iniziare

  • Abilita le API Cloud Build, Secret Manager, and Compute Engine.

    Abilita le API

Creazione di un trigger di Bitbucket Server

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

Console

Per creare un trigger Bitbucket Server utilizzando la console Google Cloud:

  1. Apri la pagina Attivatori:

    Apri la pagina Attivatori

  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 attivazione:

    • Nome: il nome dell'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 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 selezioni una regione non globale e 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 pull.

    • Origine: seleziona 1a generazione come origine.

      • Repository: seleziona un repository dall'elenco dei repository disponibili. 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 associare.

      • Controllo dei commenti: se hai selezionato Richiesta di pull come Evento, puoi scegliere le impostazioni per controllare se gli eventi non correlati al commento richiedono un'interazione aggiuntiva per attivare le build. 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 pull viene creata o aggiornata da un proprietario del repository o da un utente con autorizzazioni di scrittura, le build vengono eseguite automaticamente dall'attivatore. Se un collaboratore esterno avvia l'azione, le build verranno eseguite solo dopo che un proprietario o un utente con autorizzazioni di scrittura commenti /gcbrun sulla richiesta di pull. Visita la pagina 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 un altro collaboratore, le build vengono eseguite solo dopo che un proprietario o un utente con autorizzazioni di scrittura commenti /gcbrun nella richiesta di pull. Visita la pagina COMMENTS_ENABLED.

        • Non obbligatoria: quando una richiesta di pull viene creata o aggiornata da un collaboratore, le build vengono eseguite automaticamente dagli attivatori. Visita la pagina COMMENTS_DISABLED.

        In Bitbucket Server, gli eventi senza commento includono azioni come l'apertura, la modifica e l'approvazione delle richieste di pull.

        Gli eventi di commento, che includono l'aggiunta, la modifica e l'eliminazione di commenti, attivano le build solo se il commento proviene da un utente con autorizzazioni di scrittura o superiori e se il commento contiene /gcbrun.

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

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

  5. Fai clic su Crea per creare il trigger 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 tuo progetto Bitbucket Server. PROJECT_KEY fa distinzione tra maiuscole e minuscole.
  • REPO_SLUG è lo slug del tuo 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 creare determinati rami.
  • TAG_NAME è un'espressione regolare che corrisponde al tuo tag se vuoi impostare l'attivatore per creare determinati tag.
  • BUILD_CONFIG è il percorso del file di configurazione della 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",
    "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 tuo repository Bitbucket Server. Per ulteriori informazioni, consulta la guida di Bitbucket sugli slug dei repository.
  • PROJECT_KEY è la chiave del tuo progetto Bitbucket Server. PROJECT_KEY fa distinzione tra maiuscole e minuscole.
  • BRANCH_NAME è l'espressione regolare del ramo se vuoi impostare il trigger 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 per controllare se i trigger di build richiedono /gcbrun in un commento per eseguire la build. Per ulteriori informazioni, vedi 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 del tuo progetto Google Cloud.

Condivisione dei dati

I dati inviati a Bitbucket Server da Cloud Build ti consentono di identificare i trigger per nome e visualizzare i risultati di build su Bitbucket Server.

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

  • ID progetto Google Cloud
  • Nome trigger

La condivisione dei dati viene abilitata automaticamente per Bitbucket Server.

Passaggi successivi