Crear Webhook para Jenkins usando Github

Tiempo de lectura: 3 minutos

Buenas, hoy vamos a aprender cómo crear un Webhoook para desplegar automáticamente con Jenkins usando Github.

Primero vamos a nuestro Jenkins y ajustes.

Tenemos que instalar el plugin Generic Webhook Trigger que es compatible con github

Una vez instalado, vamos a nuestro Job de Jenkins > configuración y Build Triggers

Elegimos Generic Webhook Trigger:

Sustituimos Jenkins_URL por la URL de nuestro Jenkins.

Ahora tendremos que crear un token para identificar el proyecto:

Podemos poner por ejemplo (o también generar un token aleatorio):

NOMBRE_PROYECTO

Y al URL queda así:

https://jenkins.dev.mgbiomed.es/generic-webhook-trigger/invoke?token=NOMBRE_PROYECTO

Ahora vamos a hacer es ir a nuestro proyecto en Github.

Vamos a Settings:

Ahora vamos al apartado de Webhooks:

Y creamos uno pulsando en Add webhook:

Ahora vamos a nuestro Job en Jenkins y pulsamos en Config:

Ahora copiamos el Webhook con el token que hemos creado:

https://jenkins.dev.mgbiomed.es/generic-webhook-trigger/invoke?token=NOMBRE_PROYECTO

Dentro de Payload URL:

Importante marcar application/json para que funcione el filtro por rama.

Volvemos a Jenkins y pulsamos en Avanzado dentro de la sección del webhook anterior.

No hace falta indicar Secret Token, ya que lo incluimos en nuestra llamada con el token creado.

Activamos SSL verificación si nuestro servidor Jenkins funciona con HTTPS.

Y he seleccionado Let me select individual events para permitir seleccionar que eventos van a invocar el Webhook creado.

Por ejemplo Pushes

También podemos elegir Just the push event, si solo queremos invocarlo en Push event.

Si volvemos a Jenkins, podemos elegir que solo se invoque cuando realicemos cambios de la rama indicada dentro de Post content parameters:

En nombre de variable escribimos ref:

Dejando vacío Value Filter y Default Value.

Ahora vamos a Optional filter y creamos la expresion:

^refs/heads/{nombre_rama}$

En {nombre_rama} ponemos el nombre de la rama que queremos filtrar.

Y añadimos en Text (la variable que vamos a testear):

$ref

Tal como se muestra en la imagen:

Deja un comentario