Saltar al contenido principal

⏰ 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:

CampoDescripción
1Minuto
2Hora
3Día del mes
4Mes
5Dí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 schedule permite 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 schedule es 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.