2012-09-04 14 views
6

El complemento de unión de Jenkins permite que se ejecute un trabajo después de que se hayan completado todos los trabajos indirectos.Jenkins: trabajo desencadenante después de que se hayan completado todos los trabajos posteriores, no solo los inmediatos

Pero, ¿cómo puedo configurar un trabajo para que se ejecute después de que se hayan completado todos los trabajos posteriores, no solo los inmediatos?

Esta figura muestra los trabajos de activación de flujo que cabe esperar:

      A 
          | 
        --+----+------+-- 
         |   | 
         v   v 
         B   C 
         |   | 
    --+--------+-----+---+--  | 
     |  |   |  | 
     v  v   v  | 
     D  E   F  | 
     |  |   |  | 
     v  |   |  | 
     G  |   |  | 
     |  |   |  | 
    ---+--------+----+----+-------+-- 
        | 
        v 
        J 

puse Únete Trigger en un trabajo para disparar el último trabajo J. J Sin embargo el trabajo se inicia una vez que B y C están acabados, no espera para trabajos D, E, F y G.

En this answer y sus comentarios, dijo que las rutas pueden ser trabajos múltiples y las huellas dactilares deben usarse correctamente. Pero no puedo encontrar la manera de hacerlo funcionar.

Respuesta

5

El complemento de unión funciona solo cuando todo está dividido en "diamantes" de dependencias: un único trabajo inicial, uno o más trabajos descendentes, pero solo un nivel profundo (D y G son dos niveles profundos en el diagrama). seguido por un solo trabajo unido. Su estructura de dependencia no sigue ese patrón de diamante.

Para esta situación particular, usaría el Promoted Builds Plugin. Configure la tarea A para tener una promoción que cuando se desencadene, ejecute Job J. Realice el desencadenante de esa promoción sea la finalización exitosa de B, C, D, E, F, G. O si desea minimizarla: G, EF, C . Solo asegúrese de que las huellas dactilares estén configuradas correctamente.

Para la toma de huellas digitales, genere un archivo (o elija un archivo existente) durante la tarea A. Artefacto y huella digital. En todos los siguientes trabajos B-G, utilice el complemento CopyArtifact para recuperar ese archivo en el trabajo y también puede tomar una huella digital allí.

+0

¿Puede elaborar un poco las huellas dactilares y promover la configuración de compilación? Pregunté casi la misma pregunta [aquí] (http://stackoverflow.com/questions/26101765/jenkins-pipeline-top-level-join-gets-triggered-before-sub-level-join) – dstj

+0

Listo - la respuesta ha sido actualizado con información adicional sobre huellas dactilares. –

3

En caso de que alguien esté buscando una forma fácil simplemente use JobFanIn plugin. Este complemento le permitirá configurar el activador en el trabajo J una vez que C, E, F & G son compilados y estables

+1

Exactamente lo que necesitaba, solución de dependencia de construcción simple gracias. – dkanejs

+0

no le permite pasar parámetros desde el trabajo anterior al trabajo combinado. –

+0

eso es una limitación, supongo. El plugin de mayo se puede mejorar para hacer eso, pero con múltiples proyectos en sentido ascendente, los parámetros de aprobación también tendrán que ser procesados. Veremos si esto se puede agregar en el complemento – Yogesh

Cuestiones relacionadas