Mi Blog
👉 Cómo crear un Webhook entre GitHub y Jenkins

Cómo crear un Webhook entre GitHub y Jenkins

 
(2 votos)

Un webhook es un mecanismo utilizado para recibir notificaciones automáticas y en tiempo real de eventos que ocurren en una aplicación o servicio en línea. En lugar de tener que consultar periódicamente la aplicación en busca de cambios, un webhook permite que la aplicación envíe una solicitud HTTP a un punto de enlace configurado cuando se produce un evento específico.

Seguid leyendo y os enseñaré a crear un sencillo webhook para conectar un Job de Jenkins y Github...

⬇️ Compra en Amazon el hardware que utilizo ⬇️

🔥 ¡DESCÚBRELOS! 🔥

 

 

¿QUÉ ES UN WEBHOOK?

Los webhooks permiten suscribirse a eventos que se producen en un sistema de software y recibir automáticamente una entrega de datos al servidor cada vez que se produzcan esos eventos.

Los webhooks suelen recibir datos tal como sucede, en lugar de sondear una API (llamar a una API de forma intermitente) para ver si los datos están disponibles. Con los webhooks, solo tenemos que expresar interés en un evento una vez, al crear el webhook.

Los webhooks se usan en una amplia gama de escenarios, entre los que se incluyen:

  • Desencadenar canalizaciones de CI (integración continua) en un servidor de CI externo. Por ejemplo, para desencadenar CI en Jenkins o CircleCI cuando el código se inserta en una rama.
  • Enviar notificaciones sobre eventos en GitHub a las plataformas de colaboración. Por ejemplo, enviar una notificación a Discord o Slack cuando hay una revisión en una solicitud de incorporación de cambios.
  • Actualizar un rastreador de problemas externos como Jira.
  • Realizar una implementación en un servidor de producción.
  • Registrar eventos a medida que se producen en GitHub, con fines de auditoría.

 

 

Los Webhooks nos permiten conectar e interactuar entre GitHub y Jenkins

 

 

1.- ELEMENTOS NECESARIOS PARA ESTE TUTORIAL

  • Una cuenta en GitHub y un repositorio creado
  • Un servidor con Jenkins (debe haber conectividad entre GitHub y Jenkins)
  • Conexión a Internet recomendado

 

 

 

 

2.- CONFIGURAR JENKINS PARA GITHUB

Crearemos un Job de estilo libre y configuraremos la dirección del repositorio, las credenciales y el nombre de la rama en la sección de "Configurar el origen del código fuente":

Integrar GitHub y Jenkins con WebhooksOrigen del código

 

 

Deberemos marcar la opción de "GitHub hook trigger for GITScm polling":

Integrar GitHub y Jenkins con WebhooksGITScm polling

 

 

En la sección del Build Steps añadiremos un sencillo script de shell que muestre un mensaje en pantalla

Integrar GitHub y Jenkins con WebhooksSencillo script shell

 

 

 

3.- CONFIGURAR EL WEBHOOK EN GITHUB

Configuraremos nuestro Webhook en el repositorio que hemos configurado en el Job de Jenkins. Para ello, dentro del repositorio de GitHub haremos clic en "Settings":

Integrar GitHub y Jenkins con WebhooksSettings GitHub

 

 

Añadiremos un nuevo Webhook desde el menú izquierdo "Webhooks" y luego "Add webhook":

Integrar GitHub y Jenkins con WebhooksAñadir Webhook

 

 

Configuraremos el Webhook con los siguientes datos:

 

Integrar GitHub y Jenkins con WebhooksConfiguración del Webhook

 

 

4.- PROBAR EL WEBHOOK

Para probar el Webhook, como hemos dicho que "Send me everything", si hacemos un cambio en cualquier fichero del repositorio o cualquier otra acción deberá activarse el webhook y lanzarse de forma automática el Job en Jenkins. Por ejemplo, si modificamos cualquier fichero del prepositivo y hacemos commit, el job se ejecuta automáticamente:

Integrar GitHub y Jenkins con WebhooksEjecución automática del Job

 

 

En el log del Job podemos ver que el Job se ha ejecutado automáticamente a través de un push por el usuario raulprietofdez desde GitHub:

Integrar GitHub y Jenkins con WebhooksLog de Jenkins

 

 

ENJOY!