En Jenkins, los disparadores (triggers) definen el evento o la condición exacta que inicia un proceso de entegración continua. Configurar correctamente estos mecanismos es fundamental para automatizar el ciclo de vida del software, ya sea basándose en dependencias, cambios en el código fuente o intervalos de tiempo específicos.
Tipos de Disparadores Principlaes
- Construir cuando se construye una dependencia de Snapshot: Jenkins monitoriza otros proyectos y dispara el job actual si una dependencia de tipo Snapshot ha sido actualizada.
- Disparar construcciones de forma remota: Permite iniciar el proceso mediante llamadas HTTP (API), ideal para integrar Jenkins con scripts externos o herramientas de terceros.
- Construir después de otros proyectos: Crea una cadena de ejecución. Se pueden definir condiciones específicas:
- Solo si la construcción previa es estable.
- Incluso si es inestable.
- Incluso si la construcción falló.
- GitHub hook trigger for GITScm polling: Utiliza Webhooks para que GitHub notifique a Jenkins inmediatamente después de un
push. - Poll SCM: Jenkins consulta periódicamente al repositorio (Git, SVN, etc.) para verificar si existen cambios. Si detecta modificaciones, inicia la tarea.
Programación de Tareas (Build Periodically)
Esta opción permite ejecutar tareas de forma recurrente basándose en una sintaxis similar a Cron, pero con extensiones propias de Jenkins para distribuir la carga del servidor.
La estructura consta de cinco campos separados por espacios:
MINUTO HORA DÍA_DEL_MES MES DÍA_DE_LA_SEMANA- MINUTO: Rango de 0 a 59.
- HORA: Rango de 0 a 23.
- DÍA_DEL_MES: Rango de 1 a 31.
- MES: Rango de 1 a 12.
- DÍA_DE_LA_SEMANA: Rengo de 0 a 7 (0 y 7 representan el domingo).
El uso del símbolo H (Hash) es una buena práctica en Jenkins. En lugar de ejecutar todos los jobs exactamente al mismo segundo (por ejemplo, a las 00:00), H permite que Jenkins asigne un valor aleatorio basado en el nombre del proyecto, equilibrando el uso de recursos.
Ejemplos Prácticos de Sintaxis
Ejecución cada 10 minutos para verificación rápida:
H/10 * * * *
Construcción cada 3 horas durante el día:
0 H/3 * * *
Tarea programada para ejecutarse al inicio de la jornada laboral (8:30 AM):
30 8 * * *
Programación para días laborables (Lunes a Viernes), cada dos horas entre las 9:00 y las 17:00:
0 9-17/2 * * 1-5
Ejecución mensual, el primer y el decimoquinto día de cada mes:
H H 1,15 * *
Configuración híbrida común: Consultar cambios en el repositorio cada 15 minutos (Poll SCM) y forzar una construcción completa a medianoche para garantizar la integridad:
# Poll SCM
H/15 * * * *
# Build Periodically
0 0 * * *