Compila repositorios de Bitbucket Server

Cloud Build te permite crear activadores para compilar 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 asociados con tu repositorio de Bitbucket Server

En esta página, se explica cómo puedes habilitar la funcionalidad del activador en un 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 la región global, Cloud Build usa la configuración 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 los archivo de configuración de compilación asociado con el activador no especifica un grupo privado, Cloud Build usa la configuración para ejecutar tu compilación en la misma región como detonante.
    • 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. de las confirmaciones en una solicitud de extracción.

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

      • Repositorio: En la lista de repositorios disponibles, selecciona un en un repositorio de confianza. 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 de comentarios requieren interacción adicional para activar 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 un propietario o un usuario con permiso permisos comentarios /gcbrun en la solicitud de extracción. Consulta COMMENTS_ENABLED_FOR_EXTERNAL_CONTRIBUTORS_ONLY

        • Obligatorio: Si un usuario con permisos de escritura crea una extracción e incluye /gcbrun en la descripción de la solicitud de extracción, la compilación se ejecuta cuando se crea una solicitud de extracción. 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 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 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 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 configurar tu compilación intercalada en el desencadenante.

    • 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, puedes proporcionar un tiempo de espera para la compilación de forma opcional. 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 de 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, debes hacer lo siguiente: debes ejecutar lo 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 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_NUMBER es el número de proyecto 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 lo deseas. para configurar el activador y compilar ciertas ramas.
  • TAG_NAME es una expresión regular que coincide con tu etiqueta si deseas establecer 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 fragmento de tu repositorio de Bitbucket Server. Para obtener más información, consulta Guía de Bitbucket sobre los slugs del 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 establecer tu activador para compilar ciertas etiquetas.
  • PROJECT_NUMBER es el número del proyecto de tu 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 que controla 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 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 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?