Crear repositorios desde GitLab

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

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

Antes de empezar

Sigue las instrucciones para conectarte a un host de GitLab.
  • Enable the Cloud Build and Secret Manager APIs.

    Enable the APIs

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

Crear un activador de GitLab

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

Google Cloud consola

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

  1. Abre la página Activadores:

    Abre la página Activadores.

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

  3. Haz clic en Crear activador.

  4. Introduce los siguientes ajustes del activador:

    • Nombre: el nombre del 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): 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 iniciar una compilación en las confirmaciones de una solicitud de combinación.

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

      • Servicio de repositorio: selecciona Cloud Build.

      • Generación de repositorios: selecciona Developer Connect como fuente.

      • 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 compilaciones se ejecutan automáticamente mediante activadores.

    • 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 que ejecutará 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 tu activador de GitLab Enterprise Edition.

CLI de gcloud

Para crear activadores de GitLab con comandos 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 GitLab.
  • 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 GitLab con la API, usa 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": "GITLAB",
      // 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 GitLab.
  • 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 GitLab.
  • "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 GitLab.

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 GitLab te ayudan a identificar los activadores por su nombre y a ver los resultados de las compilaciones en tus repositorios de GitLab.

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

  • Google Cloud ID de proyecto
  • Nombre del activador

Siguientes pasos