Crear repositorios desde Bitbucket Cloud

Cloud Build te permite crear activadores para compilar desde repositorios alojados en Bitbucket Cloud. Puedes ejecutar compilaciones como respuesta a eventos, como inserciones de confirmaciones o solicitudes de combinación asociadas a tu repositorio de Bitbucket Cloud.

En esta página se explica cómo habilitar los activadores de compilación en una instancia de Bitbucket Cloud. Para obtener más información, consulta los artículos sobre activadores de Cloud Build y repositorios de Cloud Build.

Antes de empezar

  • Enable the Cloud Build and Secret Manager APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

Para crear un activador para un repositorio de Bitbucket Cloud, debes tener una conexión entre Google Cloud y tu repositorio. Para crear una conexión a través de Developer Connect, consulta Conectarse a Bitbucket Cloud en la documentación de Developer Connect.

Crear un activador de Bitbucket Cloud

En esta sección se explica cómo crear un activador y vincularlo a tu instalación de Bitbucket Cloud.

Google Cloud consola

Para crear activadores de Bitbucket Cloud con la Google Cloud consola, haz lo siguiente:

  1. Abre la página Triggers (Activadores) en la consola de Google Cloud .

    Abre la página Activadores.

  2. Selecciona el Google Cloud proyecto y haz clic en Abrir.

  3. Haz clic en Crear activador.

  4. Introduce los siguientes ajustes del activador:

    • Nombre: introduce un nombre para el activador.

    • Región: selecciona la región del activador.

      • Si el archivo de configuración de compilación asociado al activador especifica un grupo privado, Cloud Build usará ese grupo para ejecutar la compilación. En este caso, la región que especifiques en el activador debe coincidir con la región en la que hayas creado tu grupo privado.
      • Si el archivo de configuración de compilación asociado al activador no especifica un grupo privado, Cloud Build usará el grupo predeterminado para ejecutar la compilación en la misma región que el activador.

    • Descripción (opcional): escribe una descripción del activador.

    • Evento: selecciona el evento del repositorio para invocar el activador.

      • Enviar a una rama: configura el activador para iniciar una compilación en las confirmaciones de una rama concreta.

      • Enviar nueva etiqueta: configura el activador para que inicie una compilación en las confirmaciones que contengan una etiqueta concreta.

      • Solicitud de extracción: configura el activador para que inicie una compilación cuando se confirmen cambios en una solicitud de extracción.

    • Fuente: configura la información sobre tu repositorio de Bitbucket Cloud:

      • Servicio de repositorio: selecciona Developer Connect.
      • Repositorio: en la lista de repositorios disponibles, selecciona el repositorio.

      • Rama o Etiqueta: especifica una expresión regular con el valor de la rama o de la etiqueta que quieras que coincida. Para obtener información sobre la sintaxis válida de las expresiones regulares, consulta la sintaxis de RE2.

      • Control de comentarios: si has seleccionado Solicitud de extracción como Evento, elige una de las siguientes opciones para controlar si la compilación se ejecuta automáticamente mediante el activador:

        • Obligatorio excepto para propietarios y colaboradores: cuando un propietario o colaborador del repositorio crea o actualiza una solicitud de extracción, el activador ejecuta las compilaciones automáticamente. Si un colaborador externo inicia la acción, las compilaciones se ejecutan solo después de que un propietario o colaborador comente /gcbrun en la solicitud de extracción.

        • Obligatorio: cuando un colaborador crea o actualiza una solicitud de extracción, las compilaciones se ejecutan solo después de que un propietario o colaborador comente /gcbrun en la solicitud de extracción. Las compilaciones se ejecutan cada vez que se hace un cambio en una solicitud de extracción.

        • No es obligatorio: cuando cualquier colaborador crea o actualiza una solicitud de extracción, los activadores ejecutan las compilaciones automáticamente.

    • Configuración: selecciona el archivo de configuración de compilación ubicado en tu repositorio o configura la compilación directamente en el activador.

    • Tipo: selecciona el tipo de configuración que quieras usar en tu compilación.

      • Archivo de configuración de Cloud Build (yaml o json): usa un archivo de configuración de compilación para tu configuración.
      • Dockerfile usa un Dockerfile para tu configuración.
    • Ubicación: especifica la ubicación de la configuración.

      • Repositorio: si el archivo de configuración se encuentra en tu repositorio, indica la ubicación del archivo de configuración de compilación o el Dockerfiledirectorio y el nombre de la imagen resultante. Si tu configuración es Dockerfile, puedes 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 para tu compilación.

      • En línea: si has seleccionado Archivo de configuración de Cloud Build (yaml o json) como opción de configuración, puedes especificar la configuración de compilación en línea. Haz clic en Abrir editor para escribir el archivo de configuración de la compilación en la consolaGoogle Cloud con la sintaxis YAML o JSON. Haz clic en Hecho para guardar la configuración de compilación.

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

CLI de gcloud

Para crear activadores de Bitbucket Cloud con comandos de gcloud, ejecuta el siguiente comando:

    gcloud alpha builds triggers create developer connect
      --name=TRIGGER_NAME \
      --git-repository-link=projects/PROJECT_ID/locations/REGION/connections/CONNECTION_NAME/gitRepositoryLinks/REPO_NAME \
      --branch-pattern=BRANCH_PATTERN # or --tag-pattern=TAG_PATTERN \
      --build-config=BUILD_CONFIG_FILE \
      --region=REGION \
      --service-account=SERVICE-ACCOUNT

Donde:

  • TRIGGER_NAME es el nombre del activador.
  • PROJECT_ID es el ID de tu proyecto Google Cloud .
  • REGION es la región de tu activador.
  • CONNECTION_NAME es el nombre de tu conexión de Bitbucket Cloud.
  • GIT_REPOSITORY_LINK es el enlace a tu repositorio de Git.
  • BRANCH_PATTERN es el nombre de la rama de tu repositorio en la que se invoca la compilación.
  • TAG_PATTERN es el nombre de la etiqueta de tu repositorio para invocar la compilación.
  • BUILD_CONFIG_FILE es la ruta a tu archivo de configuración de compilación.
  • SERVICE-ACCOUNT es la cuenta de servicio que se debe usar para las operaciones de activadores y compilaciones.

API

Para crear un activador de Bitbucket Cloud con la API, utiliza la siguiente plantilla JSON:

{
    "filename": "cloudbuild.yaml",
    "name": "curl-trigger",
    "description": "curl trigger",
    "developer_connect_config": {
      "git_repository_link": "PROJECT_ID/locations/REGION/connections/CONNECTION_NAME/gitRepositoryLinks/REPO_NAME",
      "git_repository_link_type": "BITBUCKET_CLOUD",
      // Field filter must be only one of the following:
      "pullRequest": "PULL_REQUEST_FILTER",
      "push": "PUSH_FILTER"
   }
}

Donde:

  • PROJECT_ID es el ID de tu proyecto Google Cloud .
  • REGION es la región de tu activador.
  • CONNECTION_NAME es el nombre de tu conexión de Bitbucket Cloud.
  • GIT_REPOSITORY_LINK es el enlace a tu repositorio de Git.
  • "REPO_NAME" es el nombre de tu repositorio.
  • "PULL_REQUEST_FILTER" es una instancia de PullRequestFilter, que define el filtro que permite a Cloud Build activar una compilación cuando se realiza una solicitud de extracción coincidente en Bitbucket Cloud.
  • "PUSH_FILTER" es una instancia de PushFilter, que define el filtro que permite a Cloud Build activar una compilación cuando se realiza un push coincidente en Bitbucket Cloud.

Introduce 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 tu proyecto Google Cloud .
  • PROJECT_ID es el ID de tu proyecto Google Cloud .

Compartir datos

Los datos que Cloud Build envía a Bitbucket Cloud te ayudan a identificar los activadores por su nombre y a ver los resultados de las compilaciones en tus repositorios de Bitbucket Cloud.

Los siguientes datos se comparten entre Cloud Build y tu host de Bitbucket Cloud:

  • Google Cloud ID de proyecto
  • Nombre del activador

Siguientes pasos