tutorial - Jenkins-Build cuando se cambia un cambio a la opción GitHub no funciona
jenkins github webhook (4)
Jenkins se está ejecutando en localhost. Tengo mi repositorio en GitHub. Tengo la opción de ''Crear cuando un cambio se presiona a GitHub'' marcado.
Cuando hago clic en ''Crear ahora'', la compilación se realiza con éxito, sin problemas. Pero cuando estoy comprometiendo el código en mi repositorio, la compilación automática no está sucediendo. Puedo acceder a GitHub desde mi sistema ya que el repositorio 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 repositorio (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)
De hecho, si haces la configuración 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:
Iniciar sesión en Github (con Admin)
Vaya al repositorio que desea conectar con jenkins
- Haga clic en la pestaña de configuración -> webhooks y servicios
- Haga clic en Agregar Webhook.
- Ingrese la url de la carga útil: como: http: //: 8080 / github-webhook /
- Seleccione el tipo de contenido como json.
- estás listo.
Ahora que haces los cambios y te comprometes, verás que la compilación de jenkins se dispara automáticamente. No te olvides de hacer los ajustes en los trabajos de jenkins para comenzar la compilación cuando insertas el código en github.
El plugin GitHub ( https://wiki.jenkins-ci.org/display/JENKINS/GitHub+Plugin ) menciona dos formas: modo manual y modo automático. mainframer da la respuesta al modo manual. Hoy encontré algo nuevo. La adición de mainframer al servicio no me permite agregar varias instancias de Jenkins, por lo que agrego las otras agregue Webhook como se muestra a continuación. También funciona bien.
Quería incluir una imagen aquí, pero mi identificación no tiene derecho a hacerlo.
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.)
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 repositorio Github para que el mecanismo desencadenante automático funcione y aquí está cómo:
Ve a tu repositorio de Github:
Configuración -> Webhooks y servicios -> Servicio -> Agregar servicios -> 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/
Y, MUY IMPORTANTE , ya que está instalando su servidor jenkins en su servidor local, tenga en cuenta que no debe completar la URL de gancho Jenkins anterior 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.