¿Cómo construir condicionalmente otros proyectos?

Tengo un trabajo de Jenkins bastante complicado que construye, prueba unitaria y empaqueta una aplicación web. Dependiendo de la situación, me gustaría hacer cosas diferentes una vez que este trabajo se complete. No he encontrado una forma reutilizable / mantenible para hacer esto. ¿Es realmente el caso o me estoy perdiendo algo?

Las opciones que me gustaría tener una vez que mi complicado trabajo se complete:

Hacer nada

Iniciar mi pipeline de compilación de bajo riesgo de cambio:

Copia mi archivo WAR a mi repositorio de artefactosdespliega a la producción

Iniciar mi pipeline de compilación de alto riesgo de cambio:

Copia mi archivo WAR a mi repositorio de artefactosdespliega para probarejecutar pruebas de aceptacióndesplegar en producción

No he encontrado una manera fácil de hacer esto. El enfoque más simple, pero no muy fácil de mantener, sería hacer tres trabajos separados, cada uno de los cuales inicia una construcción posterior. Este enfoque me asusta por varias razones, incluido el hecho de que los cambios deberían realizarse en tres lugares en lugar de uno. Además, muchos de los trabajos posteriores también son casi idénticos. La única diferencia es a qué trabajos intermedios llaman. La proliferación de puestos de trabajo parece que llevaría a un desastre incontenible.

He observado el uso de varios enfoques para mantener esto como un solo trabajo, pero ninguno ha funcionado hasta ahora:

Hacer el trabajo un proyecto de configuración múltiple (https://wiki.jenkins-ci.org/display/JENKINS/Building+a+matrix+project). Esto proporciona una manera de inyectar el trabajo con un parámetro. No he encontrado una manera de hacer que el paso "crear otros proyectos" responda a un parámetro.

Use el plugin Parameterized-Trigger (https://wiki.jenkins-ci.org/display/JENKINS/Parameterized+Trigger+Plugin). Este complemento le permite activar trabajos posteriores en función de ciertos desencadenantes. Sin embargo, los disparadores parecen ser demasiado restrictivos. Todos se basan en el estado de la compilación, no en variables arbitrarias. No veo ninguna opción provista aquí que funcione para mi caso de uso.

Utilice el complemento de publicación flexible (https://wiki.jenkins-ci.org/display/JENKINS/Flexible+Publish+Plugin). Este complemento tiene el problema opuesto como el complemento de activación parametrizada. Tiene muchas condiciones útiles que puede verificar, pero no parece que pueda comenzar a construir otro proyecto. Sus acciones se limitan a la publicación de actividades de tipo.

Utilice el complemento Flexible Publish + Any Build Step (https://wiki.jenkins-ci.org/display/JENKINS/Any+Build+Step+Plugin). El complemento Cualquier paso de compilación permite que cualquier acción de compilación esté disponible para el complemento de publicación flexible. Si bien se activaron más acciones una vez que se activó este complemento, esas acciones no incluyeron "construir otros proyectos".

¿Realmente no hay una manera fácil de hacer esto? ¿Me sorprende que no lo haya encontrado y aún más que no haya visto a nadie más tratando de hacer esto? ¿Estoy haciendo algo inusual? ¿Hay algo obvio que me esté perdiendo?

Respuestas a la pregunta(3)

Su respuesta a la pregunta