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 de activación en una instancia de Bitbucket Server.

Antes de comenzar

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

    Enable the APIs

Crea un activador de Bitbucket Server

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

Console

Para crear un activador de Bitbucket Server con la consola de Google Cloud, 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 región, Cloud Build usa el grupo predeterminado para ejecutar tu compilación.
      • Si seleccionas una región no global y los archivo de configuración de compilación asociado con el activador especifica un grupo privado, Cloud Build usa 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 compilaciones a partir de confirmaciones de solicitud de extracción.

    • Fuente: Selecciona 1ª generación como fuente.

      • Repositorio: En la lista de repositorios disponibles, selecciona uno. Para conectar un repositorio nuevo, consulta Cómo conectarse 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 Evento, puedes elegir la configuración para determinar si eventos que no son comentarios requieren interacción adicional para activarse compilaciones. Elige una de las siguientes opciones para controlar si se el activador ejecutará automáticamente la compilación:

        • Obligatorio excepto para los propietarios y colaboradores: Cuando se realiza una extracción una solicitud la crea o actualiza un propietario del repositorio o un usuario con permisos de escritura, ejecuta automáticamente las compilaciones el desencadenante. Si un colaborador externo inicia la acción, las compilaciones solo se ejecutarán después de que el 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 la descripción de la solicitud, la compilación se ejecuta cuando se crea la solicitud. Cuando se crea una solicitud de extracción creado o actualizado por cualquier otro colaborador, las compilaciones solo se ejecuta después de que un propietario o un usuario con comentarios sobre permisos de escritura /gcbrun en la solicitud de extracción Consulta COMMENTS_ENABLED.

        • No obligatorio: Cuando cualquier colaborador crea o actualiza una solicitud de extracción, las compilaciones se ejecutan de forma automática con activadores. Consulta COMMENTS_DISABLED.

        En Bitbucket Server, los eventos sin comentarios incluyen acciones como las siguientes: 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 proviene 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 Bitbucket. documentación sobre administración de webhooks.

    • Configuración: Selecciona el archivo de configuración de compilación ubicado en tu repositorio o configura tu 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 el archivo de configuración se encuentra en tu repositorio, proporciona la ubicación de tu archivo de configuración de compilación o Dockerfile y un nombre para la imagen resultante. Si tu configuración es Dockerfile. De manera opcional, puedes proporcionar un tiempo de espera para tu compilación. Cuando proporciones 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 Open Editor para escribir tu archivo de configuración de compilación en la consola de Google Cloud 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 el activador de Bitbucket Server.

gcloud

Para crear un activador de Bitbucket Server con comandos gcloud, deberás ejecutar el siguiente comando gcloud builds triggers create bitbucketserver en tu 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 el fragmento de tu repositorio de Bitbucket Server. Para obtener más información, consulta la guía de Bitbucket sobre los slugs de repositorio.
  • PROJECT_NUMBER es el número del proyecto de tu 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 lo deseas. para configurar el activador y compilar ciertas ramas.
  • TAG_NAME es una expresión regular que coincide con tu etiqueta si deseas configurar tu activador para compilar 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 el 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 el slug de tu repositorio de Bitbucket Server. Para obtener más información, consulta la guía de Bitbucket sobre los slugs de repositorio.
  • PROJECT_KEY es la clave de tu proyecto de Bitbucket Server. PROJECT_KEY distingue mayúsculas de minúsculas.
  • Si lo deseas, BRANCH_NAME es la expresión regular de tu rama. para configurar el activador y compilar ciertas ramas.
  • TAG_NAME es la expresión regular de tu etiqueta si deseas configurar tu activador para compilar ciertas etiquetas.
  • PROJECT_NUMBER es el número de proyecto de tu proyecto de Cloud.
  • REGION es la región asociada con la configuración de Bitbucket Server.
  • ID es el ID de tu BitbucketServerConfig.
  • COMMENT_SETTING es el parámetro de configuración para controlar si los activadores de compilación requieren /gcbrun en un comentario para que se ejecute la compilación. Para ver más 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 Cloud.

Uso compartido de datos

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

Los siguientes datos se comparten entre Cloud Build y Bitbucket Server:

  • ID del proyecto de Google Cloud
  • Nombre del activador

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

¿Qué sigue?