BitBucket + Jenkins: creación de disparador solo cuando se cambia una twig específica

La siguiente es una supuesta solución al problema, aunque parece una solución más que una solución definitiva. ¿Hay alguna manera, a través de la configuration del trabajo o de la configuration de enlace de bitbucket, de poder configurar mis trabajos para ejecutar una construcción solo cuando se empuja una twig específica?

¿Es posible activar a Jenkins solo en una twig específica?

Ha pasado alnetworkingedor de un año desde la publicación de esa pregunta, espero que haya habido algunas actualizaciones de complementos para permitir esto sin el trabajo adicional requerido en el enlace anterior, o tal vez siempre haya habido una manera fácil de no serlo. viendo.

Solutions Collecting From Web of "BitBucket + Jenkins: creación de disparador solo cuando se cambia una twig específica"

Como @Ryan Taylor ya dijo que puedes usar el Bitbucket-Plugin:

  • Instale el complemento Bitbucket en su Jenkins
  • Agregue una publicación normal como gancho a su repository Bitbucket ( Configuración -> Ganchos ) y use la siguiente url:

https: // SU.JENKINS.SERVER: PORT / bitbucket-hook

  • Configure su proyecto Jenkins de la siguiente manera:
    • en el disparador de compilation habilitar Build cuando un cambio es empujado a BitBucket
    • en Gestión de código fuente, select GIT ; ingrese sus cnetworkingenciales y defina Sucursales para comstackr (como ** feature / * )

De esta manera, tengo tres proyectos de compilation, uno para todas las funciones, uno para desarrollo y otro para lanzamiento.

Y lo mejor de todo es que no tienes que anunciar nuevos ganchos para los nuevos proyectos de Jenkins.

Las soluciones sugeridas anteriormente serían mejores que las mías, pero no creo que el complemento Bitbucket permita desencadenantes específicos de twig.

De la documentation del complemento Bitbucket,

En cada confirmación, se activarán todos los trabajos con la opción "Crear cuando se cambie un cambio a BitBucket".

Este es un enfoque de escopeta, y obviamente un desperdicio.

He resuelto este problema implementando una pequeña aplicación web en el mismo server de aplicaciones que hospeda mi instancia de jenkins que analiza el contenido de json post enviado por bitbucket y activa selectivamente los enlaces específicos de la twig.

El código es limpio y fácil de seguir, y sería muy fácil de modificar para satisfacer sus propias necesidades; sin embargo, vale la pena señalar que no me propuse crear una solución genérica para otros. A pesar de que podría serle útil como punto de partida.

https://github.com/Hillrunner2008/bitbucket-hook-manager

Mire en el complemento BitBucket

No lo configuré antes con BitBucket, pero configuré esta misma funcionalidad con GitHub.

Uso el complemento genérico de Git para adjuntar la compilation a mi repository de git con una key ssh. Luego selecciono la opción "Crear cuando un cambio se envía a GitHub", que creo que es parte del complemento GitHub, que se configura principalmente en la configuration de Jenkins, no en la configuration del proyecto. El complemento BitBucket debería tener características / ganchos similares.

Para el mismo escenario, estoy usando la opción Poll SCM en los triggers de compilation

necesitamos dar ref en el área de git como +refs/heads/develop:refs/remotes/origin/develop .

aquí desarrollar es el nombre de la sucursal

y encuesta el horario de SCM = */1 * * * * por cada 1 minuto

Solo se disparará cuando desarrolle cambios en las twigs

Debería poder utilizar el complemento genérico Trigger Webhook . Puede usar la function "Filtro opcional" para activar solo la twig que desee.

Tendrá que jugar con JSONPath, lo que requiere que tenga conocimiento sobre la estructura del JSON enviado con el webhook de Bitbucket.

Puede ser útil echar un vistazo a este ejemplo donde se usa con GitLab.

enter image description here