Найти в Дзене

⏰ CRON в GitHub Actions — просто и понятно

⏰ CRON в GitHub Actions — просто и понятно Всем привет! 👋 Чуть ранее я сделал пост на тему настройки workflow для запуска по расписанию. Расписание настраивается в формате * * * * * - это называется POSIX cron-синтаксис Пять настраиваемых значений. Для многих кто сталкивается с данным форматом впервые не совсем понятно, что эти звездочки настраивают. Поэтому решил сделать данный пост. Когда в workflow ты видишь: on: schedule: - cron: '0 3 * * *' 👉 это триггер запуска по расписанию, какие еще есть я расскажу в одном из следующих постов. В данном случае данное расписание запускает workflow в 03:00 по UTC. GitHub всегда считает время по UTC — таймзону задать нельзя. 🧩 Формат cron: ┌───────────── минута (0 - 59) │ ┌───────────── час (0 - 23) │ │ ┌───────────── день месяца (1 - 31) │ │ │ ┌───────────── месяц (1 - 12 или JAN-DEC) │ │ │ │ ┌───────────── день недели (0 - 6 или SUN-SAT) │ │ │ │ │ * * * * * 💡 Пример: cron: '15 4,5 * * *' → запустит workflow в 04:15 и 05:15 по UTC ка

⏰ CRON в GitHub Actions — просто и понятно

Всем привет! 👋

Чуть ранее я сделал пост на тему настройки workflow для запуска по расписанию.

Расписание настраивается в формате * * * * * - это называется POSIX cron-синтаксис

Пять настраиваемых значений.

Для многих кто сталкивается с данным форматом впервые не совсем понятно, что эти звездочки настраивают.

Поэтому решил сделать данный пост.

Когда в workflow ты видишь:

on:

schedule:

- cron: '0 3 * * *'

👉 это триггер запуска по расписанию, какие еще есть я расскажу в одном из следующих постов.

В данном случае данное расписание запускает workflow в 03:00 по UTC.

GitHub всегда считает время по UTC — таймзону задать нельзя.

🧩 Формат cron:

┌───────────── минута (0 - 59)

│ ┌───────────── час (0 - 23)

│ │ ┌───────────── день месяца (1 - 31)

│ │ │ ┌───────────── месяц (1 - 12 или JAN-DEC)

│ │ │ │ ┌───────────── день недели (0 - 6 или SUN-SAT)

│ │ │ │ │

* * * * *

💡 Пример:

cron: '15 4,5 * * *' → запустит workflow в 04:15 и 05:15 по UTC каждый день.

В данном примере я добавил ещё оператор во втором параметре - ,

⚙️ Какие есть операторы:

| Символ | Значение | Пример |

| :----- | :------------- | :------------------------------------------------ |

| `*` | любое значение | `15 * * * *` — каждые часы в 15 минут |

| `,` | список | `2,10 4,5 * * *` — 04:02, 04:10, 05:02, 05:10 |

| `-` | диапазон | `30 4-6 * * *` — 04:30, 05:30, 06:30 |

| `/` | шаг | `20/15 * * * *` — каждые 15 минут, начиная с 20-й |

🧠 Важно знать:

🕓 Cron всегда по UTC.

⏱️ Минимальный интервал — раз в 5 минут.

💤 Репозиторий без активности 60 дней — cron отключается.

⚠️ GitHub может задержать запуск при высокой нагрузке (особенно в начале каждого часа).

💡 Совет: не ставь 0 * * * *.

Выбирай, например, 7 * * * * или 3 4 * * *, чтобы избежать очередей.

📅 Примеры расписаний:

| Cron | Что делает |

| -------------- | ----------------------------------- |

| `0 3 * * *` | каждый день в 03:00 UTC |

| `30 6 * * 1-5` | по будням в 06:30 UTC |

| `*/10 * * * *` | каждые 10 минут |

| `0 0 1 * *` | в полночь 1-го числа каждого месяца |

🔗 Быстро настроить и проверить формат можно здесь:

👉 crontab.guru

Он покажет, когда именно сработает твой cron 😎

Ставь реакцию 🔥, если было полезно

🌐 Сайт | 💼 LinkedIn | 📘 Курс по Postman