Jenkins-Build cuando se cambia un cambio a la opción GitHub no funciona

Jenkins se está ejecutando en localhost. Tengo mi repository en GitHub. Tengo la opción de 'Crear cuando un cambio se presiona a GitHub' marcado.

Cuando hago clic en 'Crear ahora', la compilation se realiza con éxito, sin problemas. Pero cuando estoy comprometiendo el código en mi repository, la compilation automática no está sucediendo. Puedo acceder a GitHub desde mi sistema ya que el repository es público y creo que incluso Jenkins debería ser capaz de detectarlo. Sé que hay una opción de votación, pero quiero que Jenkins construya cuando se detecte un cambio en el repository (ya que esto es lo que hemos estado tratando de lograr).

Configuración:

Jenkins 1.615

Plugin de Git 2.3.5

Git Client Plugin 1.17.1

——————————————–

EDITAR : La opción " Crear cuando se cambia un cambio a GitHub " se ha cambiado por " GitHub hook trigger for GITScm polling " en la versión más reciente del complemento GitHub. (gracias a los comentarios de @ smrubin)

Sospecho que te perdiste la webhook url .

Además de verificar la Build when a change is pushed to GitHub opción Build when a change is pushed to GitHub , también debe agregar la url webhook en su repository Github para que el mecanismo desencadenante automático funcione y aquí se muestra cómo hacerlo:

Ve a tu repository de Github:

Configuración -> Webhooks y services -> Servicio -> Agregar services -> Elija "Jenkins (plugin GitHub)"

A continuación, complete la Jenkins hook url con su URL jenkins de la siguiente manera: http: // your_jenkins_url / github-webhook / enter image description here


Y, MUY IMPORTANTE , ya que está instalando su server jenkins en su server local, tenga en count que no debe completar la URL de gancho anterior de Jenkins como http://localhost:8080/github-webhook/ porque Github no puede reconocer localhost o 127.0.0.1 o 192.168.*.* .

O bien, debe usar un nombre DNS accesible externamente o una dirección IP, que Github puede reconocer.

Tuve el mismo problema y lo solucioné. El problema era que la URL tenía que terminar con un / . Sentido:

http://<jenkinsurl>:8080/github-webhook/ trabajado.

http://<jenkinsurl>:8080/github-webhook no. (Observe la falta / al final.)

De hecho, si haces la configuration de webhook desde Jenkins -> Github plugin configuration (mencionado anteriormente), verás que los webhooks se crean en github. Por lo tanto, por encima de dos enfoques básicamente haciendo lo mismo.

Personalmente, me gusta crear webhook desde Github, porque de esta manera no tienes que compartir o almacenar la información de usuario de github en jenkins.

Pasos:

  1. Iniciar session en Github (con Admin)

  2. Vaya al repository que desea conectar con jenkins

  3. Haga clic en la pestaña de configuration -> webhooks y services
  4. Haga clic en Agregar Webhook.
  5. Ingrese la url de la carga útil: como: http: //: 8080 / github-webhook /
  6. Seleccione el tipo de contenido como json.
  7. estás listo.

Ahora que haces los cambios y te comprometes, verás que la compilation de jenkins se dispara automáticamente. No te olvides de hacer los ajustes en los trabajos de jenkins para comenzar la compilation cuando insertas el código en github.

El plugin GitHub ( https://wiki.jenkins-ci.org/display/JENKINS/GitHub+Plugin ) menciona dos forms: modo manual y modo automático. mainframer da la respuesta al modo manual. Hoy encontré algo nuevo. La adición de mainframer al service no me permite agregar varias instancias de Jenkins, por lo que agrego que los otros agreguen el Webhook como se muestra a continuación. También funciona bien.

Quería include una image aquí, pero mi identificación no tiene derecho a hacerlo.