Compila repositorios desde Bitbucket Server

Cloud Build te permite crear activadores para compilar desde 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 del activador en una instancia del servidor de Bitbucket.

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 tus repositorios de Bitbucket Server a Cloud Build y crear un activador para invocar compilaciones en tus repositorios conectados de forma automática. Si quieres usar activadores de Bitbucket Server en una red privada, consulta Compila repositorios a partir de Bitbucket Server en una red privada para obtener más instrucciones.

Console

Sigue estos pasos para crear un activador de Bitbucket Server con la consola de Google Cloud:

  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 de tu 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: Configura el activador para que inicie una compilación a partir de las confirmaciones de una solicitud de extracción.

    • Fuente: Selecciona 1a generación como la fuente.

      • Repositorio: En la lista de repositorios disponibles, selecciona uno. Para conectar un repositorio nuevo, consulta Conéctate a un repositorio de Bitbucket Server.

      • Rama o Etiqueta: Especifica una expresión regular con la rama o el valor de la etiqueta que deben coincidir.

      • Control de comentarios: Si seleccionaste Solicitud de extracción como tu Evento, puedes elegir la configuración para controlar si los eventos que no son comentarios requieren una interacción adicional para activar las compilaciones. Elige una de las siguientes opciones para controlar si el activador ejecutará una compilación automáticamente:

        • Obligatorio, excepto para los propietarios y los colaboradores: Cuando un propietario del repositorio o un usuario con permisos de escritura crea o actualiza una solicitud de extracción, el activador ejecutará las compilaciones de forma automática. Si un colaborador externo inicia la acción, las compilaciones solo se ejecutarán después de que un propietario o un usuario con permisos de escritura comente /gcbrun en la solicitud de extracción. Consulta COMMENTS_ENABLED_FOR_EXTERNAL_CONTRIBUTORS_ONLY.

        • Obligatorio: Si un usuario con permisos de escritura crea una solicitud de extracción y, además, incluye /gcbrun en su descripción, la compilación se ejecuta cuando se crea la solicitud de extracción. Cuando cualquier otro colaborador crea o actualiza una solicitud de extracción, las compilaciones solo se ejecutarán después de que un propietario o un usuario con comentarios de permisos de escritura /gcbrun en la solicitud de extracción. Consulta COMMENTS_ENABLED.

        • No obligatoria: Cuando un colaborador crea o actualiza una solicitud de extracción, los activadores ejecutarán las compilaciones de forma automática. Consulta COMMENTS_DISABLED.

        En Bitbucket Server, los eventos que no son de comentarios incluyen acciones como abrir, modificar y aprobar solicitudes de extracción.

        Los eventos de comentarios, que incluyen agregar, editar y borrar comentarios, solo activarán compilaciones si el comentario es de un usuario con permisos de escritura o superiores y el comentario contiene /gcbrun.

        Para obtener más información sobre los tipos de eventos de Bitbucket Server, consulta la documentación de Bitbucket sobre cómo administrar webhooks.

    • Configuración: Selecciona el archivo de configuración de compilación ubicado en tu repositorio o configura tu compilación de forma 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 el archivo de configuración se encuentra en el repositorio, proporciona la ubicación del archivo de configuración de compilación o el directorio Dockerfile, y un nombre para la imagen resultante. Si tu configuración es 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 ejecutará tu 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 la consola de Google Cloud con la sintaxis YAML o JSON. Haz clic en Listo para guardar la configuración de tu compilación.

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

gcloud

Para crear un activador de Bitbucket Server con los comandos gcloud, debes ejecutar el siguiente comando gcloud builds triggers create bitbucketserver en la terminal:

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

Aquí:

  • TRIGGER_NAME es el nombre del activador.
  • PROJECT_KEY es la clave de tu proyecto de Bitbucket Server. PROJECT_KEY distingue mayúsculas de minúsculas.
  • REPO_SLUG es la slug de tu repositorio de Bitbucket Server. Para obtener más información, consulta la guía de Bitbucket sobre slugs de repositorio.
  • PROJECT_NUMBER es el número de tu proyecto de Cloud.
  • REGION es la región asociada a tu configuración de Bitbucket Server.
  • ID es el ID de tu BitbucketServerConfig.
  • BRANCH_NAME es una expresión regular que coincide con tu rama si deseas configurar el activador para que compile ciertas ramas.
  • TAG_NAME es una expresión regular que coincide con tu etiqueta si deseas configurar el activador para que compile determinadas 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 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"
    }
}

Aquí:

  • REPO_SLUG es la slug de tu repositorio de Bitbucket Server. Para obtener más información, consulta la guía de Bitbucket sobre slugs de repositorio.
  • PROJECT_KEY es la clave de tu proyecto de Bitbucket Server. PROJECT_KEY distingue mayúsculas de minúsculas.
  • BRANCH_NAME es la expresión regular de la rama si deseas configurar el activador para que compile ciertas ramas.
  • TAG_NAME es la expresión regular de tu etiqueta si deseas configurar el activador para compilar ciertas etiquetas.
  • PROJECT_NUMBER es el número de tu proyecto de Cloud.
  • REGION es la región asociada a tu configuración de Bitbucket Server.
  • ID es el ID de tu BitbucketServerConfig.
  • COMMENT_SETTING es la configuración para controlar si los activadores de compilación requieren /gcbrun en un comentario para que se ejecute la compilación. Para obtener más información, consulta commentControl.

Ingresa el siguiente comando curl en la 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

Aquí:

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

Uso compartido de datos

Los datos que se envían a Bitbucket Server desde Cloud Build te permiten identificar los activadores por nombre y ver los resultados de la compilación en Bitbucket Server.

Cloud Build y Bitbucket Server comparten los siguientes datos:

  • ID del proyecto de Google Cloud
  • Nombre del activador

El uso compartido de datos está habilitado automáticamente en Bitbucket Server.

¿Qué sigue?