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:
Ingeniero en Informática, Investigador, me encanta crear cosas o arreglarlas y darles una nueva vida. Escritor y poeta. Más de 20 APPs publicadas y un libro en Amazon.