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

Cómo crear un Webhook entre GitHub y Jenkins

 

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...

🤖 Haz un resumen de este artículo con Inteligencia Artificial 🤖

💬 ChatGPT 🔍 Perplexity 🔮 Google AI Mode 🐦 Grok

⬇️ 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!


Raúl Prieto Fernández

Sitio Web: raulprietofernandez.net

Si quieres ir rápido, ve solo. Si quieres llegar lejos, ve acompañado.

Acerca de Mi

RPF

Soy Ingeniero Téc. Industrial Mecánico, Administrador de Sistemas Informáticos, Desarrollador de Aplicaciones Informaticas Web, Técnico Superior en PRL, Experto en Energías Renovables... y trabajo actualmente como Senior DevOPS en HP SCDS.

Contactar conmigo

E-Mail: Contactar

Web: https://www.raulprietofernandez.net

APÚNTATE GRATIS

VIP RPF
Entra en la Comunidad VIP y consigue acceso a las descargas en PDF, Trucos y Videotutoriales ocultos y mucho más... ¡Muy Pronto!