Imagine un trabajo A de Jenkins que tarda 1 minuto en ejecutarse, y el trabajo B, que tarda 5 minutos.Trabajo parametrizado de Jenkins que solo pone en cola una compilación
Si configuramos el trabajo A para desencadenar el trabajo B, mientras el trabajo B está ejecutándose el trabajo A puede ejecutarse 5 veces antes de que B finalice. Sin embargo, Jenkins no agrega 5 compilaciones a la cola del trabajo B, lo cual es excelente porque de lo contrario el trabajo A acelerado crearía un retraso acumulado de compilaciones para trabajo lento y lento B.
Sin embargo, ahora queremos tener trabajo Un disparador B como un trabajo parametrizado, usando parameterized trigger plugin. Los trabajos parametrizados do hacen cola en un backlog, lo que significa que el trabajo A está creando felizmente una gran pila de construcciones para el trabajo B, que posiblemente no puede mantener el ritmo.
Tiene sentido agregar una nueva compilación parametrizada a la cola cada vez que se activa, ya que los parámetros pueden ser diferentes. Jenkins no siempre debe asumir que una nueva compilación parametrizada hace innecesarios a los que estaban previamente en cola.
Sin embargo, en nuestro caso, realmente nos gustaría. Job A crea y empaqueta nuestra aplicación, luego Job B la implementa en un entorno de producción y ejecuta un conjunto más pesado de pruebas de integración. También tenemos una compilación C que se implementa en otro entorno e incluso hace más pruebas, por lo que este es un patrón creciente para nosotros.
Queremos que la cola de nuestro trabajo parametrizado B solo conserve la última compilación añadida; cada nueva construcción reemplazaría cualquier trabajo actualmente en la cola.
¿Hay alguna buena manera de lograr esto?
Puede guardar los parámetros en un archivo de propiedades y usar el complemento envInject para leer las propiedades. –
Los parámetros se pueden pasar en un activador tradicional también. –