Crear repositorios desde GitHub

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

En esta página se explica cómo habilitar los activadores de compilación para una instancia de GitHub. 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 GitHub.
  • Enable the Cloud Build API.

    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 API

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

Crear un activador de GitHub

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

Google Cloud consola

Para crear activadores de GitHub con la Google Cloud consola, sigue estos pasos:

  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.

           * If the build config file associated with the trigger specifies a
           [private pool](/build/docs/private-pools/private-pools-overview), then
           Cloud Build uses the private pool to run your build. In this
           case, the region you specify in your trigger must match the region
           where you created your private pool.
           * If the build config file associated with the trigger **doesn't**
           specify a private pool, then Cloud Build uses the default
           pool to run your build in the same region as your trigger.
      

    • 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 GitHub:

      • Servicio de repositorio: selecciona Cloud Build.

      • Generación de repositorios: selecciona 1.ª generación 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 remoto o crea un archivo de configuración de compilación insertado para usarlo en tu compilación.

      • Tipo: selecciona el tipo de configuración que quieras usar en tu compilación.
        • Detección automática: Cloud Build detecta automáticamente el tipo de configuración si tienes un archivo cloudbuild.yaml o Dockerfile en tu repositorio.
        • 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.
        • Paquetes de compilación: usa paquetes de compilación para tu configuración.
      • Ubicación: especifica la ubicación de tu configuración.

        • Repositorio: si el archivo de configuración se encuentra en tu repositorio remoto, 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.
    • Variables de sustitución (opcional): si has seleccionado el archivo de configuración de Cloud Build como opción de configuración de compilación, puedes definir variables de sustitución específicas del activador mediante este campo. Por ejemplo, supongamos que vas a crear varios activadores y que cada uno de ellos desplegará tu aplicación en un entorno específico. Puedes especificar que tu aplicación se implemente en un entorno de tu archivo de configuración de compilación y, a continuación, usar este campo para definir variables de sustitución que especifiquen en qué entorno se debe implementar este activador. Para obtener información sobre cómo especificar valores de sustitución en archivos de configuración de compilación, consulta Sustituir valores de variables.

    • Registros de compilación (opcional): marca la casilla para enviar los registros de compilación a GitHub. Para saber cómo ver los registros de compilación, consulta Ver registros de compilación.

    • Cuenta de servicio: selecciona la cuenta de servicio que quieras usar al invocar el activador. Si la política de tu organización permite usar la cuenta de servicio antigua de Cloud Build, puedes dejar este campo en blanco para usarla. De lo contrario, debes seleccionar la cuenta de servicio específica que quieras usar, aunque sea la cuenta de servicio predeterminada de Compute Engine.

  5. Haz clic en Crear para guardar el activador de compilación.

Para crear activadores de GitHub con comandos gcloud, consulta los gcloud comandos para crear un activador de compilación.

CLI de gcloud

Para crear activadores de GitHub 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 GitHub.
  • 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 GitHub con la API, usa la siguiente plantilla JSON:

  {
      "filename": "cloudbuild.yaml",
      "name": "TRIGGER_NAME",
      "description": "TRIGGER_DESCRIPTION",
      "serviceAccount": "SERVICE_ACCOUNT",
      "github": {
          "owner": "OWNER",
          "name": "REPO_NAME",
          "push": {
              "branch": ".*"
          },
      
      },
      "include_build_logs": include-build-logs-value
  }

Donde:

  • TRIGGER_NAME es el nombre del activador.
  • TRIGGER_DESCRIPTION es una descripción del activador.
  • SERVICE_ACCOUNT es la cuenta de servicio que se debe usar para las operaciones de activadores y compilaciones.
  • OWNER es el propietario del repositorio de GitHub.
  • REPO_NAME es el nombre del repositorio de GitHub.
  • include-build-logs-value es el valor del campo include_build_logs opcional. Si este campo tiene el valor INCLUDE_BUILD_LOGS_SPECIFIED, los registros de compilación se muestran en tu repositorio.

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 .

Compilar y ver los cambios

Para compilar con activadores de GitHub, debes insertar y confirmar los cambios en el repositorio de origen conectado o configurar la compilación en las solicitudes de extracción. Una vez que hayas registrado los cambios, Cloud Build compilará el código.

Para ver los cambios de la compilación en GitHub, ve a la pestaña Comprobaciones de tu repositorio.

Captura de pantalla de la pestaña Conversación

Verás que Cloud Build ha compilado los cambios. También verás otros detalles de la compilación, como el tiempo que se ha tardado en compilar el código y el ID de compilación.

Para ver los cambios de la compilación en Cloud Build, haz clic en Ver más detalles en Google Cloud Build. Se abrirá la página Detalles de la compilación en la consola Google Cloud , donde podrá ver información sobre la compilación, como el estado, los registros y los pasos de compilación.

Distintos tipos de activadores basados en GitHub

Si tu código fuente está en GitHub, Cloud Build te ofrece dos formas de ejecutar compilaciones automáticamente. En esta sección se explican los dos activadores basados en GitHub y se comparan sus funciones.

  • Activadores antiguos de GitHub: cuando creas un activador antiguo de GitHub, Cloud Build replica tu repositorio de GitHub en Cloud Source Repositories y usa el repositorio replicado para todas sus operaciones. Puedes crear y gestionar activadores de GitHub con la Google Cloud consola.

  • Activadores de GitHub: este tipo de activador usa la aplicación de GitHub para Cloud Build para configurar GitHub y autenticarse en él. Los activadores de GitHub te permiten iniciar automáticamente compilaciones en inserciones de Git y solicitudes de extracción, así como ver los resultados de las compilaciones en GitHub y en la consola Google Cloud . Puedes crear y gestionar activadores de GitHub mediante la Google Cloud consola o la API de Cloud Build, como se describe en esta página.

  • Activadores de GitHub Enterprise: este tipo de activador te permite invocar compilaciones en respuesta a confirmaciones o solicitudes de extracción en una instancia de GitHub Enterprise. Puedes crear repositorios desde GitHub Enterprise mediante la Google Cloud consola o la API de Cloud Build.

En la siguiente tabla se comparan los activadores antiguos de GitHub, los activadores de GitHub y los activadores de GitHub Enterprise:

Función Activadores antiguos de GitHub Activadores de GitHub Activadores de GitHub Enterprise
Ejecutar compilaciones en las inserciones del código fuente
Ejecutar compilaciones en solicitudes de extracción No
Crear un activador con la consola Google Cloud
Crear un activador con la API Cloud Build No
Crear un activador con la aplicación de GitHub para Cloud Build No
Ver el estado de la compilación en la Google Cloud consola
Ver el estado de la compilación en GitHub No

Compartir datos

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

Actualmente, Cloud Build y GitHub comparten los siguientes datos:

  • ID de proyecto de Cloud
  • Nombre del activador
  • Registros de compilación

Si creaste activadores antes de agosto del 2020, es posible que la opción de compartir datos no esté habilitada en tu proyecto. Para habilitar el uso compartido de datos en todos los activadores de GitHub de tu proyecto, haz clic en Habilitar en la pestaña Uso compartido de datos de Cloud Build.

Si tienes habilitadas las comprobaciones de estado obligatorias en un repositorio de GitHub, habilitar el uso compartido de datos puede interrumpir temporalmente las comprobaciones de estado. Puedes ajustar las configuraciones de comprobación de estado para buscar el nombre del activador de la siguiente forma:

  • Inhabilitar las comprobaciones obligatorias específicas de Cloud Build en el repositorio de GitHub
  • Asegurarse de que el uso compartido de datos esté habilitado en Cloud Build
  • Ejecutar una nueva compilación en Cloud Build que publique estados en tu repositorio
  • Volver a habilitar las comprobaciones de estado obligatorias y seleccionar el nombre del activador

Siguientes pasos