2012-03-01 15 views
5

Quiero programar a Jenkins para que realice cierto trabajo a las 8:00 a. M. Todos los lunes, miércoles jueves y viernes y a las 8:00 a.m. cada Martes.¿Puedo configurar "Build" de Jenkins para construir cada dos martes a partir del 13 de marzo?

En este momento, lo mejor que puedo pensar es:

# 8am every Monday, Wednesday, Thursday, and Friday: 
0 8 * * 1,3-5 

# 8am on specific desired Tuesdays, one line per month: 
0 8 13,27 3 2 
0 8 10,24 4 2 
0 8 8,22 5 2 
0 8 5,19 6 2 
0 8 3,17,31 7 2 
0 8 14,28 8 2 
0 8 11,25 9 2 
0 8 9,23 10 2 
0 8 6,20 11 2 
0 8 4,18 12 2 

que es está bien (si es feo) para el resto de 2012, pero es casi seguro que no va a hacer lo que quiera en 2013.

¿Hay una forma más concisa de hacer esto, o una que sea independiente del año?

Respuesta

2

Esto es algo que aparece muy a menudo, consulte p. Ej. this document, this forum thread o this stackoverflow question.

La respuesta es básicamente no. Lo que haría en su situación es ejecutar el trabajo todos los martes y hacer que el primer paso de compilación verifique si se ejecuta realmente por ej. verifica si existe un archivo y solo se ejecuta si no existe. Si existe, se eliminará para que el trabajo pueda ejecutarse la próxima vez que se realice esta comprobación. Por supuesto, también deberías verificar si es martes.

0

Utilizo Excel para generar las expresiones cron. Las siguientes fórmulas generan cada dos lunes a las 8:00 AM comenzando desde octubre 22.

 A  B    C    D 
1 41204 =MONTH(A1) =DAY(A1)  =CONCATENATE("0 8 ", C1, " ", B1, " 1") 
2 =A1+14 =MONTH(A2) =DAY(A2) =CONCATENATE("0 8 ", C2, " ", B2, " 1") 

Esto genera

A  B  C  D 
1 22-Oct 10 22 0 8 22 10 1 
2 5-Nov 11 5 0 8 5 11 1 

Sólo automático de llenado de la fila 2 para obtener días adicionales. No estoy seguro de cuántas expresiones diferentes le puedes dar a Jenkins. Sé que funciona con 26 expresiones.

1

Si se abandona cada dos martes, y puede estar satisfecho con el primer y tercer martes al mes, lo siguiente debería funcionar: 0 9 1-7 * 2 0 9 15-21 * 2

Usted se está ejecutando todos los días de 1-7, pero solo el martes, y todos los días de 15-21, nuevamente solo el martes. Un martes ocurrirá solo una vez en cada uno de esos intervalos.

Sí, no es estrictamente cada dos semanas, ya que un mes de 5 martes eliminará su cadencia, pero aquí tiene un horario de trabajo predecible que no necesita ajustarse en Jenkins con el paso del tiempo.

Cuestiones relacionadas