Запис завдання складається з двох частин: графіка (5 полів) та команди.
Ось як розшифровуються ці п’ять «зірочок»:
| Поле | Значення | Діапазон |
| 1 | Хвилини | 0 – 59 |
| 2 | Години | 0 – 23 |
| 3 | День місяця | 1 – 31 |
| 4 | Місяць | 1 – 12 |
| 5 | День тижня | 0 – 6 (0 — неділя) |
Спеціальні символи
Щоб гнучко налаштовувати час, використовують оператори:
*(Зірочка) — Завжди. Наприклад, «щохвилини».,(Кома) — Перелік.1,15,30у полі хвилин означає: у 1-шу, 15-ту та 30-ту хвилини.-(Тире) — Діапазон.1-5у полі днів тижня означає: з понеділка по п’ятницю./(Слеш) — Крок.*/10у полі хвилин означає: «кожні 10 хвилин».
Приклади для закріплення:
30 18 * * *— Щодня о 18:30.0 0 1 * *— О північі першого числа кожного місяця.0 9-18 * * 1-5— На початку кожної години (0 хвилин) з 9 ранку до 6 вечора, але тільки у будні дні.0 0 * * 6— О північі щосуботи.
Приклад файлу YAML
YAML
name: CI Checks
on:
# Перевірка при кожному мержі (точніше, при створенні/оновленні PR)
pull_request:
branches:
- main
- master
# Запуск тестів за розкладом
schedule:
# Раз на тиждень у суботу о 00:00 за UTC
- cron: '0 0 * * 6'
jobs:
# Робота для перевірки лінтера
lint:
runs-on: ubuntu-latest
# Запускаємо тільки якщо це PR
if: github.event_name == 'pull_request'
steps:
- uses: actions/checkout@v4
- name: Use Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
- run: npm ci
- run: npm run lint
# Робота для запуску тестів
test:
runs-on: ubuntu-latest
# Запускаємо тільки за розкладом
if: github.event_name == 'schedule'
steps:
- uses: actions/checkout@v4
- name: Use Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
- run: npm ci
- run: npm test