2012-02-16 24 views
12

Tengo un trabajo de compilación de Jenkins con un desencadenador Mercurial en la rama predeterminada, que funciona bien para compilar "candidatos de lanzamiento". Este trabajo luego comienza un trabajo de prueba de humo.Cómo configurar Jenkins para construir proyectos desde diferentes sucursales en Mercurial

Utilizamos un esquema de bifurcación de rama por función, por lo que en cualquier momento dado podría haber hasta una docena de ramas activas diferentes en Mercurial (pero las ramas activas cambian regularmente).

Me gustaría un trabajo de Jenkins desencadenado por cambios en cualquier sucursal, que luego construirá y ejecutará las pruebas de humo para todas las sucursales que necesiten actualización. Cada vez que hacemos una construcción, debemos crear artefactos nombrados para que coincidan con la rama.

Vi una sugerencia en otra respuesta de usar "punta" en lugar del nombre de la rama en el disparador Mercurial: esta es una posibilidad, pero creo que caería en la categoría "principalmente funciona". El activador es el sondeo, por lo que si se producen cambios en más de una bifurcación dentro del intervalo de sondeo, se puede perder una actualización de bifurcación.

Podría crear un nuevo trabajo cada vez que se crea una sucursal, pero debido a la naturaleza dinámica de nuestras sucursales, sería mucho trabajo en curso.

Respuesta

2

Creo que tendrá que personalizar: el trabajo de sondeo de alto nivel (ajustado a la punta) ejecuta un script personalizado que determina las ramas que han cambiado o se han agregado. A continuación, utilizará Jenkins API para iniciar un trabajo parametrizado por el nombre de la rama. Ese parámetro se puede usar en su trabajo para personalizar todo lo que necesita por el nombre de la sucursal (incluidos los artefactos).

Cuestiones relacionadas