Cloud Build te permite crear activadores en una instancia de GitHub Enterprise. En esta página, se explica cómo puedes usar los activadores de GitHub Enterprise para invocar compilaciones en respuesta a confirmaciones o solicitudes de extracción desde una instancia de GitHub Enterprise y cómo se pueden compilar repositorios desde GitHub Enterprise si la instancia está alojada en un entorno local.
Antes de comenzar
-
Habilita las API de Cloud Build and Secret Manager.
- Asegúrate de tener la versión más reciente de GitHub Enterprise.
- Asegúrate de tener acceso de administrador a los repositorios para los que deseas habilitar los activadores de GitHub Enterprise.
Asegúrate de asignar un dominio personalizado a tu host de GitHub Enterprise y de tener un certificado SSL válido para tu host.
Permisos de IAM obligatorios
Para conectar tu host de GitHub Enterprise, otorga la función de editor de Cloud Build (roles/cloudbuild.builds.editor
) y la función de propietario de integraciones de Cloud Build (cloudbuild.integrations.owner
) a tu cuenta de usuario.
Para agregar las funciones necesarias a tu cuenta de usuario, consulta Configura el acceso a los recursos de Cloud Build. Para obtener más información sobre las funciones de IAM asociadas con Cloud Build, consulta Funciones y permisos de IAM.
Crea una aplicación de GitHub de Cloud Build
Deberás crear una aplicación de GitHub en tu instancia de GitHub Enterprise. La app enviará eventos de webhook a un extremo de Cloud Build. Cuando se reciben estos eventos, Cloud Build validará la carga útil y ejecutará una compilación si el evento corresponde a un activador de GitHub de Cloud Build. Deberás instalar la app en los repositorios en los que quieras configurar los activadores de GitHub Enterprise.
En esta sección, se explica cómo crear una app de GitHub:
- Accede a tu instancia de GitHub Enterprise.
Asegúrate de tener instalada la versión más reciente de GitHub Enterprise.
Algunas versiones de GitHub Enterprise pueden requerir que se inhabiliten las cookies de SameSite para completar los siguientes pasos en un navegador Chrome. Si tienes una versión de GitHub Enterprise anterior a la versión 2.21.3, deberás inhabilitar las cookies de SameSite:
- Ve a
chrome://flags/
. - Escribe
samesite
en la barra de filtros. Asegúrate de que las cookies predeterminadas de SameSite estén inhabilitadas.
Reinicia el navegador.
- Ve a
Abre la página Administrar repositorios de Cloud Build:
Haz clic en Conectar host.
Verás el panel Conectar host, que te solicita que crees una conexión de host para conectar los repositorios de GitHub Enterprise a Cloud Build.
En la sección URL del host, ingresa la URL de tu instancia de GitHub Enterprise. Por ejemplo,
ghe.example.com
.En la sección Clave de API, haz clic en Generar para generar una clave de API o ingresa una clave de API si ya tienes una.
Si deseas crear una clave de API de forma manual, completa el siguiente paso:
Para obtener una clave de API, haz lo siguiente:
Abre la página Credenciales en Cloud Console:
Haz clic en Crear credenciales.
Haz clic en Clave de API.
Verás un cuadro emergente con la clave de API creada.
Haz clic en Restringir clave.
En API Constraints, selecciona Cloud Build API en el menú desplegable.
Haz clic en Guardar.
En la sección Organización, ingresa la organización para la que se creará la app de GitHub (OPCIONAL). Si esta sección se deja en blanco, se creará la app en la cuenta de usuario actual.
En la sección CA Certificate, haz clic en Browse para subir tu certificado autofirmado (opcional). El certificado no debe superar los 10 KB y debe estar en formato PEM (
.pem
,.cer
o.crt
). Si esta sección se deja en blanco, se utilizará un conjunto predeterminado de certificados.[OPCIONAL] En la sección Red, ingresa el nombre de tu Proyecto de red y un Nombre de red si la instancia de GitHub Enterprise está alojada de forma local y cambiaste la red con Google Cloud.
Haz clic en Conectar host.
Si tu instancia de GitHub Enterprise se encuentra en una red con intercambio de tráfico, el proceso de conexión del host puede tardar varios minutos en completarse.
Si deseas conectar tus repositorios a Cloud Build, haz clic en Conectar repositorios. De lo contrario, haga clic en Listo.
Después de que conectes tu host, aparecerá un cuadro emergente en el que se te solicitará que ingreses el nombre de tu app de GitHub Enterprise. Antes de ingresar el nombre de la app, es posible que se te solicite acceder. Si usas Google Chrome como navegador, es posible que la página emergente te solicite ingresar información sobre la app de GitHub Enterprise de forma manual.
Después de acceder, ingresa un nombre para tu app de GitHub.
Haga clic en Crear aplicación de GitHub.
Acabas de crear una app de GitHub en tu instancia de GitHub Enterprise. Cloud Build almacenará de forma automática tus credenciales en Secret Manager y conectará el host a tu proyecto de Cloud. En la API, esta conexión se representa como un recurso de GitHubEnterpriseConfig o como una asociación entre Cloud Build y tu servidor de GitHub Enterprise.
El host se conectó correctamente. Puedes hacer clic en Conectar repositorios si deseas conectar repositorios a Cloud Build.
Conecta tus repositorios de GitHub Enterprise
En esta sección, se explica cómo asignar tu proyecto de Cloud a la app de GitHub que creaste en la sección anterior.
Console
Abre la página Activadores en Google Cloud Console.
Haz clic en Conectar repositorio.
En Seleccionar fuente, haz clic en GitHub Enterprise.
En el menú desplegable, selecciona Conexión de host (GitHub Enterprise Config).
Haga clic en Continuar.
Autorice su aplicación.
En Seleccionar repositorio, selecciona tu cuenta de GitHub y Repositorio en el menú desplegable.
API
Para instalar la app de GitHub en la organización o cuenta de usuario de GitHub adecuada, y conectarla a un proyecto de Cloud Build, haz lo siguiente:
Navega a la URL asociada a la app de GitHub que creaste en la sección anterior:
https://host-url/organizations/org-name/settings/apps/app-name/
Donde:
- host-url es la URL del host de tu instancia de GitHub Enterprise.
- org-name es el nombre de la organización en la que creaste tu proyecto.
- app-name es el nombre de tu app de GitHub.
Instala la app en tu organización o cuenta de usuario a través de la URL.
Una vez instalada la app, anota el ID de instalación asociado a ella. El ID de instalación se puede encontrar en la URL después de instalarla.
Crea un archivo JSON con el siguiente contenido:
{ "Id": installation-id, "project_id": "project-id", "repository_setting_list": { "repository_settings": { "owner": "owner", "name": "repo-name", }, "repository_settings": { "owner": "owner", "name": "repo-name-additional" }, … }, "enterprise_config_resource_name": "projects/project-number/githubEnterpriseConfigs/id" }
Donde:
- installation-id es el ID de instalación de la app de GitHub. Este valor es un número entero y no requiere comillas.
- project-id es el proyecto de Cloud asociado con la instalación.
- owner es el propietario del repositorio de GitHub.
- repo-name es el nombre del repositorio de GitHub.
- repo-name-additional es el nombre de un repositorio adicional de GitHub.
- project-number es el número del proyecto de Cloud.
- id es el ID de conexión de host que se obtuvo de la pestaña Conexiones de host en la página Administrar repositorios.
Ingresa el siguiente comando de
curl
en tu terminal, en el que project-id es el ID del proyecto de Cloud:curl -X POST -H "Authorization: Bearer "$(gcloud auth print-access-token) -H "Content-Type: application/json; charset=utf-8" https://cloudbuild.googleapis.com/v1/projects/${PROJECT_ID}/installations -d @installation.json
Los repositorios asociados con tu instalación ahora se pueden ver en la página Activadores, en la pestaña Inactivo.
Crea un activador de GitHub para la instalación de GitHub Enterprise
En esta sección, se explica cómo puedes crear un activador y vincularlo a la instalación de GitHub Enterprise. Si deseas usar activadores de GitHub Enterprise en un entorno local, consulta Compila repositorios en un entorno local desde GitHub Enterprise para obtener más instrucciones.
Console
Si quieres aprender a crear activadores con los activadores de GitHub, consulta Crea activadores de GitHub.
API
En la siguiente plantilla JSON, se muestra cómo crear activadores a través de la línea de comandos:
{
"filename": "cloudbuild.yaml",
"name": "trigger-name",
"description": "trigger-description",
"github": {
"push": {
"branch": ".*",
},
"owner": "owner",
"name": "repo-name",
"enterprise_config_resource_name": "projects/project-number/githubEnterpriseConfigs/id"
},
"include_build_logs": "INCLUDE_BUILD_LOGS_WITH_STATUS"
}
Donde:
- trigger-name es el nombre del activador.
- trigger-description es la descripción del activador.
- owner es el propietario del repositorio de GitHub.
- repo-name es el nombre del repositorio de GitHub.
- project-number es el número del proyecto de Cloud.
- id es el ID de tu GitHubEnterpriseConfig.
_include_build_logs
es un campo que puedes especificar para mostrar los registros de compilación de tus repositorios. Esta marca es compatible con las compilaciones de GitHub y los repositorios de GitHub Enterprise.
Ingresa el siguiente comando de curl
en tu terminal, en el que project-id es el ID del proyecto de Cloud:
curl -X POST -H "Authorization: Bearer "$(gcloud auth print-access-token) -H "Content-Type: application/json; charset=utf-8" https://cloudbuild.googleapis.com/v1/projects/project-id/triggers -d @trigger.json
Ya se creó tu activador.
Compila repositorios en un entorno local desde GitHub Enterprise
Si tu instancia de GitHub Enterprise está alojada en un entorno local y no se puede acceder a ella a través de una conexión a Internet pública, debes crear una conexión privada entre tu red de VPC y la red del productor de servicios. También necesitas un grupo privado para compilar en un entorno local.
Si deseas crear un activador de GitHub Enterprise para compilar en tu entorno local, sigue estos pasos:
Para crear una conexión privada entre tu red de VPC y la red del productor de servicios, completa los siguientes pasos:
- Habilita la AAPI de Service Networking.
Crea una red de VPC nueva o selecciona una red de VPC existente.
Asigna un rango de IP con nombre en la red de VPC. Para usar la red de VPC con Cloud Build, la longitud del prefijo debe ser
/23
o inferior, como/22
,/21
, etcétera.Establecer una conexión privada de red de VPC entre tu red de VPC y Google Cloud Para obtener más información, consulta Crea una conexión privada.
Si configuraste el DNS para tu instancia de GitHub Enterprise, deberás intercambiar la zona de DNS de forma manual con nuestro proveedor de servicios. Para obtener más información, consulta Comparte zonas de DNS privadas con productores de servicios.
[OPCIONAL] Si no quieres crear una conexión privada desde tu proyecto de Cloud, puedes configurar una VPC compartida y hacer que el proyecto de Cloud use esa red si el proyecto forma parte de una organización. Aún necesitará la VPC compartida para intercambiar tráfico con la API de Service Networking.
Usa grupos privados para ejecutar tus compilaciones. Si no creaste un grupo privado, consulta Crea un grupo privado nuevo.
Crea un activador de GitHub Enterprise para compilar repositorios alojados en una instancia de GitHub Enterprise.
El activador de GitHub Enterprise ahora invocará automáticamente las compilaciones en tu instancia de GitHub Enterprise según tu configuración. Para aprender a ejecutar compilaciones con un grupo privado de trabajadores, consulta Cómo ejecutar compilaciones en un grupo privado.
Próximos pasos
- Obtén más información sobre cómo crear y administrar activadores.
- Aprende a ver resultados de compilación.
- Obtén más información para solucionar errores de compilación.