Github + Jenkins >> ¿Cómo desencadenar build en "Commit and Push" en el repository de código?

  • He configurado una instancia local de Jenkins en mi computadora, y puedo acceder a ella a través de " http: // localhost: 8080 ".
  • Creé un repository Public Git y agregué mi proyecto ASP.NET MVC allí.
  • También configuró a Jenkins para build el proyecto, y lo hace muy bien.

Sin embargo, este es un disparador manual. Quiero decir, la compilation se activa solo cuando un usuario hace clic en "Crear ahora" en la console de Jenkins.

En realidad, mi requisito es activar una compilation cuando los cambios se confirman y se presionan. (eso significa, "Comprometerse y empujar" durante los cambios de check-in).

Me referí a muchos blogs y publicaciones y conocí los ganchos de Git. También intenté crear un gancho "post-recepción". Creé un enlace en la location donde se mapea el código fuente (por ejemplo, "E: \ Git \ test-jenkins.git \ hooks").

#!/bin/bash curl POST "http://localhost:8080/job/Test-Jenkins/build" --data delay=0sec 

Pero esto no funciona. Una compilation nunca se activa en "Commit and Push". cuando trato de copyr la URL directamente en el browser, desencadena una compilation, por lo que creo que no hay ningún problema con la URL. Pero el script en sí no se está ejecutando.

¿Alguien podría sugerir cómo resolver este problema?

Cualquier ayuda en esto muy apreciada.

Es porque el server Github no podrá llegar al server Jenkins alojado en local, para desencadenar la compilation.

Necesitará una static IP address o necesitará asignar una input DNS a su IP dinámica. Además, debe abrir el puerto 8080 para acceso externo. Solo entonces GitHub podrá llegar a su instancia local con su webhook.

Espero eso ayude:)

Creo que deberías usar "webhook & services" en la configuration de tu repository en Github. Por favor, mira la image a continuación: jenkins + github

Para implementarlo, debes tener un dominio público para tu Jenkins