¿Cómo puedo programar trabajos en Jenkins?


He añadido un nuevo trabajo en Jenkins, que quiero programar periódicamente.

Desde Configure job , estoy marcando la casilla de verificación" Compilar periódicamente " y en el campo de texto Schedule agregado la expresión:

15 13 * * *

Pero no se ejecuta a la hora programada.

¿Es el procedimiento correcto programar un trabajo?

Introduzca la descripción de la imagen aquí

El trabajo debe ejecutarse a las 4:20 AM, pero no se está ejecutando.

 188
Author: Peter Mortensen, 2012-09-18

7 answers

Al establecer el período de programación en 15 13 * * * le dices a Jenkins que programe la compilación todos los días de cada mes de cada año en el minuto 15 de la hora 13 del día.

Jenkins usó una expresión cron , y los diferentes campos son:

  1. MINUTOS Minutos en una hora (0-59)
  2. HORAS Horas en un día (0-23)
  3. DÍAMES Día en un mes (1-31)
  4. MES Mes en un año (1-12)
  5. DAYWEEK Día de la semana (0-7) donde 0 y 7 son domingo

Si desea programar su compilación cada 5 minutos, esto hará el trabajo: */5 * * * *

Si desea programar su compilación todos los días a las 8h00, esto hará el trabajo: 0 8 * * *

Para las últimas versiones (2014), Jenkins tiene un nuevo parámetro, H (extracto de la documentación del código de Jenkins ):

Para permitir que las tareas programadas periódicamente produzcan carga uniforme en el sistema, se debe usar el símbolo H (para "hash") siempre que sea posible.

Por ejemplo, usar 0 0 * * * para una docena de trabajos diarios causará un gran pico a medianoche. Por el contrario, usar H H * * * todavía ejecutaría cada trabajo una vez al día, pero no todos al mismo tiempo, utilizando mejor los recursos limitados.

Note también que:

El símbolo H se puede considerar como un valor aleatorio sobre un rango, pero en realidad es un hash del nombre del trabajo, no una función aleatoria, de modo que el valor permanece estable para cualquier proyecto.

Más ejemplo de uso de'H'

 346
Author: Cédric Julien,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-07-21 17:04:05

Jenkins le permite configurar varias veces, separadas por saltos de línea.

Si lo necesita para construir todos los días a las 7 am, junto con todos los domingos a las 4 pm, lo siguiente funciona bien.

H 7 * * *

H 16 * * 0
 19
Author: Pawan Gaitonde,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-07-21 17:05:54

*/5 * * * * significa cada 5 minutos

5 * * * * significa el minuto 5 de cada hora

 16
Author: Nikul Padhya,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-01-22 19:40:58

Para programar un trabajo cron cada 5 minutos, debe definir la configuración de cron de la siguiente manera:

*/5 * * * *
 5
Author: fduff,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-07-21 17:04:52

El formato es El siguiente:

MINUTO (0-59), HORA (0-23), DÍA (1-31), MES (1-12), DÍA DE LA SEMANA (0-6)

La letra H, que representa la palabra Hash se puede insertar en lugar de cualquiera de los valores. Calculará el parámetro basado en el código hash de su nombre de proyecto.

Esto es para que si está construyendo varios proyectos en su máquina de construcción al mismo tiempo, digamos medianoche cada día, no todos comienzan su ejecución de construcción en el a la misma hora. Cada proyecto comienza su ejecución en un minuto diferente dependiendo de su código hash.

También puede especificar el valor entre números, es decir, H(0,30) devolverá el código hash del proyecto donde los posibles hashes son 0-30.

Ejemplos:

  1. Comience a construir diariamente a las 08: 30 de la mañana, de lunes a viernes: 30 08 * * 1-5

  2. Día de la semana diariamente construir dos veces al día, a la hora del almuerzo 12: 00 y medianoche 00: 00, domingo a Jueves: 00 0,12 * * 0-4

  3. Comience a construir diariamente en la tarde entre 4: 00 p. m. - 4:59 p. m. o 16:00 -16:59 dependiendo del proyecto hash: H 16 * * 1-5

  4. Comenzar a construir a medianoche: @ medianoche o comenzar a construir a medianoche, todos los sábados: 59 23 * * 6

  5. Cada primero de cada mes entre las 2: 00 a. m. - 02:30 a. m.: H(0,30) 02 01 * *

 3
Author: Nagarjuna Yalamanchili,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-07-21 17:10:18

Intente usar 0 8 * * *. Debería funcionar

 2
Author: user1815823,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-08-23 22:20:38

Para cualquiera que no quiera esperar la hora completa para ver si una compilación en particular se activa:

Para obtener el hash, puede descargar el hasher aquí. Use el nombre completo del proyecto tal como se escribe en la página de la rama e imprímalo así:

System.out.println(Hash.from("sub/microservices/master"));
 -1
Author: thoredge,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-07-21 17:07:06