Compila repositorios desde Bitbucket Server

Cloud Build te permite crear activadores para compilar a partir de repositorios alojados en Bitbucket Server, lo que te permite ejecutar compilaciones en respuesta a eventos como envíos de confirmación o solicitudes de extracción asociadas con tu repositorio de Bitbucket Server.

En esta página, se explica cómo puedes habilitar la funcionalidad de activación en una instancia de Bitbucket Server.

Antes de comenzar

  • Habilita las API de Cloud Build, Secret Manager, and Compute Engine.

    Habilita las API

Crea un activador de Bitbucket Server

En esta sección, se explica cómo puedes conectar los repositorios de Bitbucket Server a Cloud Build y crear un activador para invocar las compilaciones en los repositorios conectados de forma automática. Si quieres usar activadores de Bitbucket Server en una red privada, consulta Compila repositorios desde Bitbucket Server en una red privada para obtener más instrucciones.

Console

Para crear un activador de servidor de Bitbucket con Google Cloud Console, sigue estos pasos:

  1. Abrir la página Activadores:

    Abrir la página Activadores

  2. Selecciona el proyecto en la parte superior de la página y haz clic en Abrir.

  3. Haz clic en Crear activador.

  4. Ingresa las siguientes opciones de configuración del activador:

    • Nombre: un nombre para tu activador

    • Región: selecciona la región para el activador.

      • Si seleccionas global como la región, Cloud Build usa el grupo predeterminado para ejecutar tu compilación.
      • Si seleccionas una región no global y el archivo de configuración de compilación asociado con el activador especifica un grupo privado, Cloud Build usa el grupo privado para ejecutar tu compilación. En este caso, la región que especifiques en el activador debe coincidir con la región en la que creaste el grupo privado.
      • Si seleccionas una región no global y el archivo de configuración de compilación asociado con el activador no especifica un grupo privado, Cloud Build usa el grupo predeterminado para ejecutar la compilación en la misma región que el activador.
    • Descripción (opcional): Una descripción para tu activador

    • Evento: Selecciona el evento de repositorio que invoca al activador.

      • Enviar a una rama: Configura el activador para que inicie compilaciones a partir de las confirmaciones en una rama en particular.

      • Enviar etiqueta nueva: Configura el activador para que inicie compilaciones a partir de las confirmaciones que contengan una etiqueta específica.

      • Solicitud de extracción (Cloud Source Repositories no es compatible): configura el activador para que inicie compilaciones a partir de confirmaciones de solicitud de extracción.

    • Fuente: Selecciona el repositorio que se compilará cuando se ejecute el activador de Bitbucket Server.

    • Revisión: Selecciona la rama o etiqueta para compilar cuando se ejecute el activador de Bitbucket Server.

    • Rama: Configura un activador para compilar esta rama.

    • Etiqueta: Configura un activador para compilar esta etiqueta.

    • Configuración: Selecciona el archivo de configuración de compilación ubicado en el repositorio o configura la compilación intercalada en el activador.

    • Tipo: Selecciona el tipo de configuración que usarás para la compilación.

      • Archivo de configuración de Cloud Build (YAML o JSON): Usa un archivo de configuración de compilación para la configuración.
      • Dockerfile: Usa Dockerfile para la configuración.
    • Ubicación: Especifica la ubicación de tu configuración.

      • Repositorio: Si tu archivo de configuración está ubicado en tu repositorio, proporciona la ubicación de tu archivo de configuración de compilación o el directorio Dockerfile y un nombre para la imagen resultante. Si tu configuración es una Dockerfile, tienes la opción de proporcionar un tiempo de espera para la compilación. Cuando hayas proporcionado el Dockerfile y el nombre de la imagen, verás una vista previa del comando docker build que se ejecutará en la compilación.

      • En línea: Si seleccionaste Archivo de configuración de Cloud Build (YAML o JSON) como tu opción de configuración, puedes especificar tu configuración de la compilación de forma intercalada. Haz clic en Abrir editor para escribir tu archivo de configuración de compilación en Google Cloud Console con sintaxis YAML o JSON. Haz clic en Listo para guardar la configuración de tu compilación.

  5. Haz clic en Crear para crear tu activador de Bitbucket Server.

gcloud

Para crear un activador de Bitbucket Server con los comandos gcloud, deberás ejecutar el siguiente comando gcloud alpha builds triggers create bitbucketserver en tu terminal:

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

Donde:

  • TRIGGER_NAME es el nombre del activador.
  • PROJECT_KEY es la clave de tu proyecto de Bitbucket Server.
  • REPO_SLUG es la babosa del repositorio de Bitbucket Server.
  • PROJECT_NUMBER es el número de tu proyecto de Cloud.
  • ID es el ID de BitbucketServerConfig.
  • BRANCH_NAME es la regex de tu rama si deseas configurar el activador para que compile ciertas ramas.
  • TAG_NAME es la regex de tu etiqueta si deseas configurar tu activador para que compile ciertas etiquetas.
  • BUILD_CONFIG es la ruta de acceso al archivo de configuración de compilación.

API

Para crear un activador de Bitbucket Server con la API, usa la siguiente plantilla de 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/global/bitbucketServerConfigs/ID"
      }
  }

Donde:

  • PROJECT_KEY es la clave de tu proyecto de Bitbucket Server.
  • REPO_SLUG es la babosa del repositorio de Bitbucket Server.
  • PROJECT_NUMBER es el número de tu proyecto de Cloud.
  • ID es el ID de BitbucketServerConfig.
  • BRANCH_NAME es la regex de tu rama si deseas configurar el activador para que compile ciertas ramas.
  • TAG_NAME es la regex de tu etiqueta si deseas configurar tu activador para que compile ciertas etiquetas.

Ingresa el siguiente comando curl en tu terminal:

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

Donde:

  • PROJECT_NUMBER es el número de proyecto de Cloud.
  • PROJECT_ID es el ID del proyecto de Cloud.

Uso compartido de datos

Los datos enviados a Bitbucket Server desde Cloud Build te ayudan a identificar activadores por nombre y a ver los resultados de compilación en Bitbucket Server.

Actualmente, Cloud Build y Bitbucket Server comparten los siguientes datos:

  • ID del proyecto de nube
  • Nombre del activador

El uso compartido de datos se habilita automáticamente para Bitbucket Server.

¿Qué sigue?