Cómo activar una compilation de Jenkins cuando se realiza un envío a un repository privado de Github

Mi Servidor de Integración Continua de Jenkins está en ejecución en un host Ubuntu, configurado de la siguiente manera:

  • Jenkins v 1.463
  • github-api 1.23
  • Jenkins GIT plugin 1.1.18
  • Plugin GitHub 1.2

Polling SCM funciona. Esto es importante decirlo porque quiero que sepas que mi otra configuration relacionada con jenkins está funcionando bien, excepto este disparador post-build sin sentido.

Quiero configurar Jenkins para que cuando los cambios se envíen a una twig de desarrollo en un repository github privado, esto desencadene una compilation que incorpore los cambios más recientes.

El repository está bajo mi count personal de github como propietario. Llamemos a este propietario

Estoy incluyendo otra count de github.com como queueborador. Vamos a llamar a este queueborador

La razón por la que hago esto es porque, en caso de que ya no esté involucrado en el proyecto, alguien más puede continuar con el mantenimiento.

Las keys SSH para el usuario jenkins en ubuntu se almacenan en queueboración

He consultado los siguientes enlaces:

http://nepalonrails.tumblr.com/post/14217655627/set-up-jenkins-ci-on-ubuntu-for-painless-rails3-app-ci

https://issues.jenkins-ci.org/browse/JENKINS-10391

https://wiki.jenkins-ci.org/display/JENKINS/Github+Plugin

http://kohsuke.org/2011/12/01/polling-must-die-triggering-jenkins-builds-from-a-git-hook/

https://wiki.jenkins-ci.org/display/JENKINS/Logging

http://blog.cloudbees.com/2012/01/better-integration-between-jenkins-and.html

Nada de eso no está funcionando. Algunos parecen un poco anticuados o incluso contradictorios.

He añadido github.com a knownhosts para el usuario de jenkins ubuntu. He agregado el webhook github.

He intentado la configuration manual y automática de github webhook en jenkins.

Nada funciona.

Necesito una guía paso a paso sobre cómo lograr esto sin interrogar a github.

Tuve un problema similar y, después de mirar el logging principal del sistema de Jenkins , vi lo siguiente:

Feb 15, 2013 8:35:44 PM hudson.security.csrf.CrumbFilter doFilter WARNING: No valid crumb was included in request for /github-webhook/. Returning 403. 

La solución es desactivar la protección CSRF – Administrar Jenkins> Configurar sistema> Prevenir exploits de falsificación de requestes entre sitios. La checkbox se encuentra justo en la parte inferior de la primera sección de configuration. Después de eso, todo pareció funcionar felizmente.

Cree un registrador con logging de nivel de rastreo para la categoría com.cloudbees.jenkins en su /log url (Administrar Jenkins-> loggings del sistema).

Verifique que haya una input de URL de Webhook en la sección de Enganches de service de la pantalla de administración de su repository.

Haga clic en Gancho de testing y debería ver alguna actividad de logging debajo del registrador recién creado.

Finalmente, compruebe la acción de logging de GitHub Polling en la construcción que ha configurado para ser activada por GitHub.

Un error común es probar ganchos de compromiso como este sin tener un cambio presente.

El gancho solo se usa para solicitar una encuesta y no realizará una construcción a less que se detecten cambios.