Tengo dos proyectos Jenkins que comparten una base de datos. No deben ser ejecutados simultáneamente. Estrictamente hablando, no existe una dependencia particular entre ellos más allá de la no concurrencia, pero en este momento yo manejo parcialmente esta restricción ejecutando un "flujo descendente" del otro. Esto funciona la mayor parte del tiempo, pero no siempre. Si ocurre un cambio de control de fuente mientras el segundo se está ejecutando, el primero se iniciará de nuevo, y se ejecutarán al mismo tiempo, y probablemente ambos fallen miserablemente.¿Cómo puedo evitar que dos proyectos/construcciones de Jenkins se ejecuten al mismo tiempo?
Esto es similar, pero no idéntico, a How to prevent certain Jenkins jobs from running simultaneously? La diferencia es que no tengo un problema de "número de subprocesos": ya estoy ejecutando como máximo un subproceso de cualquier proyecto dado en un momento dado , incluso en el caso en que dos construcciones (de proyectos diferentes) se pisoteen entre sí. Esto parece descartar todas las sugerencias en ese hilo.
Las cerraduras y los pestillos complemento mencionado en la respuesta a la pregunta que usted ha citado debería funcionar aquí también. –
Locks & Latches funciona para mi caso, pero está en [la lista de "desaprobación potencial"] (https://wiki.jenkins-ci.org/display/JENKINS/Proposed+Plugin+Deprecation). Si se queda obsoleto, se ve como el más nuevo [Exclusion-Plugin] (https://wiki.jenkins-ci.org/display/JENKINS/Exclusion-Plugin) hará el trabajo por mí (y [Throttle Concurrent compila]] (https://wiki.jenkins-ci.org/display/JENKINS/Throttle+Concurrent+Builds+Plugin) para el otro, contado, caso). – jackr