2011-05-27 18 views
14

Me gustaría poder ejecutar varias compilaciones del mismo trabajo de Jenkins simultáneamente.Jenkins - Ejecutando instancias de compilación individual simultáneamente

Ejemplo:

  1. Build [* jenkins_job_1 *]: llama una secuencia de comandos de hormigas con el parámetro 'A'
  2. Build [* jenkins_job_1 *]: llamadas de una secuencia de comandos de hormigas con el parámetro 'B'
  3. repita según sea necesario
  4. cada instancia del trabajo se ejecuta simultáneamente, en lugar de a través de una cola.

La razón por la que me gustaría hacer esto es para evitar tener que crear varios trabajos que son casi idénticos, todos los cuales tendrían que mantenerse.

¿Hay alguna manera de hacer esto, o tal vez otra solución (es decir, crear dinámicamente un trabajo desde un trabajo base y eliminarlo una vez que haya finalizado)?

Respuesta

0

Puede crear una construcción y configurarla con parámetros. Haga clic en la casilla This build is parameterized y agregue los parámetros deseados en la Configuración de la compilación. A continuación, puede iniciar compilaciones simultáneas utilizando diferentes parámetros.

Nota al margen: El "Creador masivo" en Jenkins podría insertarlo en una cola, pero también hay una casilla de verificación This bulk build is parameterized.

+2

Intenté esto anteriormente, pero no pude hacer que se ejecutaran al mismo tiempo. Después de volver, noté una opción "Ejecutar construcciones concurrentes si es necesario" que no vi antes. Funcionó después. – qpi

+0

@qpi: Debería funcionar como lo desea después de marcar la casilla de verificación "Ejecutar compilaciones simultáneas si es necesario" –

+0

, esto creará un espacio de trabajo diferente para cada compilación en ejecución de un trabajo ... o habrá solo un espacio de trabajo para el trabajo. por favor, hágame saber cómo se gestionará el espacio de trabajo en caso de compilaciones concurrentes que se ejecutan simultáneamente. – thinkingmonster

6

Puede seleccionar Cree un proyecto de configuración múltiple (compilación de matriz) cuando cree el trabajo. Luego, bajo la configuración del trabajo, puede definir la Matriz de configuración que le permite especificar uno o más parámetros (ejes) para diferentes compilaciones. En cuanto a la ejecución simultánea, debería poder ejecutar tantas compilaciones simultáneas como ejecutores (con la etiqueta adecuada).

Desafortunadamente, el Jenkins wiki carece de documentación sobre esta configuración. Hay un par de preguntas anteriores de SO, here y here, que pueden proporcionar una pequeña guía. Hubo un "reciente" blog post sobre la configuración de un trabajo de configuración múltiple para realizar construcciones en varias plataformas.

+0

La publicación del blog mencionada anteriormente es útil –

21

Jenkins tiene una casilla de verificación: "Ejecutar concurrente construye si es necesario"

Si marca esto, entonces va a empezar varias composiciones para un trabajo.

Esto funciona con la casilla de verificación "Esta versión está parametrizada".

Aún activaría las compilaciones, pasando su A o B como parámetros. Puede usar otro trabajo para activarlos o puede hacerlo manualmente a través de un script.

3

Una solución más nueva (y mejor) es la Jenkins Job DSL Plugin.

Lo hemos estado utilizando con gran éxito. Nuestras configuraciones de trabajo ahora son desechables ... podemos configurar una enorme pila de trabajos complicados a partir de algunos archivos maravillosos y un par de plantillas de trabajos. Es genial.

Me gusta mucho más que las compilaciones matriciales, que eran complicadas y más difíciles de entender.

Cuestiones relacionadas