⏰ Cron Job - Establecer cada cuánto se tiene que ejecutar
Hasta ahora hemos visto cómo ejecutar workflows de forma manual o en respuesta a determinados eventos.
Sin embargo, en muchos casos necesitaremos que un flujo de trabajo se ejecute automáticamente cada cierto tiempo sin intervención humana.
Para ello, GitHub Actions incorpora el evento schedule, que permite programar ejecuciones utilizando expresiones cron.
🤖 Automatización frente a tareas manuales
Realizar tareas manualmente puede ser útil durante las pruebas, pero no es una solución escalable.
Cuando una acción debe ejecutarse periódicamente, lo más habitual es configurar una programación automática.
Algunos ejemplos comunes son:
- Actualizar datos periódicamente
- Sincronizar información con servicios externos
- Generar informes automáticos
- Ejecutar tareas de mantenimiento
- Actualizar documentación o repositorios
En todos estos casos, un cron job permite olvidarse completamente de la ejecución manual.
📅 El evento schedule
GitHub Actions permite programar workflows mediante el evento:
on:
schedule:
- cron: '0 9 * * 1'
Cada vez que se cumpla la condición definida por la expresión cron, GitHub ejecutará automáticamente el workflow.
✨ Ayuda visual para escribir expresiones cron
Una de las ventajas de trabajar con editores modernos es que suelen proporcionar ayuda contextual al escribir expresiones cron.
Al introducir una expresión, muchas herramientas muestran automáticamente una descripción en lenguaje natural indicando cuándo se ejecutará.
Por ejemplo:
- Cada minuto
- Cada 5 minutos
- Cada hora
- Todos los días a una hora concreta
- Solo determinados días de la semana
Esto facilita enormemente la creación y validación de cron jobs.
⏱️ Ejecuciones periódicas
Las expresiones cron permiten definir frecuencias muy variadas.
Por ejemplo:
Cada 5 minutos
cron: '*/5 * * * *'
Cada 10 minutos
cron: '*/10 * * * *'
Cada 15 minutos
cron: '*/15 * * * *'
Todos los días a las 6 de la mañana
cron: '0 6 * * *'
Todos los días a las 9 de la mañana
cron: '0 9 * * *'
🚀 Caso real de uso
Un ejemplo práctico consiste en mantener actualizado automáticamente un repositorio que recopila información de distintas fuentes.
En el vídeo se muestra un caso donde un workflow obtiene información de vídeos publicados y actualiza automáticamente un repositorio.
Para evitar ejecuciones innecesarias, el workflow se programa para ejecutarse cada cuatro horas.
Por ejemplo:
cron: '0 */4 * * *'
Esto ejecutará el flujo cada cuatro horas exactamente en el minuto cero.
También podría configurarse para hacerlo en otro minuto concreto:
cron: '30 */4 * * *'
En este caso se ejecutaría cada cuatro horas cuando el reloj marque el minuto treinta.
🔢 Cómo se compone una expresión cron
Una expresión cron está formada por cinco campos:
* * * * *
│ │ │ │ │
│ │ │ │ └── Día de la semana
│ │ │ └──── Mes
│ │ └────── Día del mes
│ └──────── Hora
└────────── Minuto
Cada posición tiene un significado específico:
| Campo | Descripción |
|---|---|
| 1 | Minuto |
| 2 | Hora |
| 3 | Día del mes |
| 4 | Mes |
| 5 | Día de la semana |
Comprender esta estructura es clave para construir cualquier programación.
📆 Programar días concretos
No siempre es necesario ejecutar tareas cada pocas horas.
Muchas veces resulta más sencillo indicar exactamente cuándo queremos que ocurra algo.
Por ejemplo, para ejecutar un workflow todos los lunes a las 9 de la mañana:
cron: '0 9 * * 1'
Cuando llegue ese momento, GitHub ejecutará automáticamente el workflow.
A partir de ahí podrás:
- Llamar a APIs
- Actualizar bases de datos
- Generar contenido
- Sincronizar servicios
- Ejecutar cualquier tarea automatizada
🎯 No busques el cron perfecto
Un error habitual es intentar construir expresiones extremadamente complejas.
En muchos casos es más práctico definir horarios concretos.
Por ejemplo:
- A las 9:00 y a las 18:00
- Cada cuatro horas
- Todos los lunes
- Cada día a primera hora
Las expresiones simples suelen ser más fáciles de mantener y entender.
📌 Ideas clave de esta clase
Quédate con estos conceptos:
- El evento
schedulepermite programar workflows automáticamente. - GitHub Actions utiliza expresiones cron para definir la frecuencia.
- Una expresión cron tiene cinco campos.
- Puedes ejecutar workflows cada pocos minutos, horas o días.
- También puedes programarlos para días concretos de la semana.
- Los editores modernos suelen mostrar explicaciones automáticas de las expresiones cron.
- Las programaciones sencillas suelen ser más fáciles de mantener.
- El evento
schedulees ideal para tareas periódicas y automatizaciones.
🚀 Lo siguiente
Ahora que sabes cómo programar la ejecución automática de workflows, ya puedes construir automatizaciones que funcionen sin intervención manual.
Combinando schedule con llamadas a APIs, generación de contenido o sincronización de datos, podrás crear flujos de trabajo completamente autónomos dentro de GitHub Actions.
💡 Tip: Antes de crear una expresión cron compleja, pregúntate si puedes resolver el problema con varios horarios específicos. Normalmente será más sencillo de entender y mantener.