Учебник: Запланированный пайплайн
В этом учебнике вы создадите ночной пайплайн, выполняющий аудит зависимостей и отправляющий уведомление в Slack с результатами.
Время: ~10 минут Цель экспорта: GitHub Actions
Что вы построите
Пайплайн, запускающийся каждую ночь в 2:00 и:
- Проверяющий устаревшие зависимости
- Выполняющий аудит безопасности
- Уведомляющий Slack-канал о результате
Шаг 1 — Сохранить вебхук Slack
- Перейдите в Настройки → Учётные данные → Новые учётные данные
- Заполните:
- Метка:
Slack Webhook — #alerts - Провайдер:
slack - Значение:
https://hooks.slack.com/services/...(ваш URL входящего вебхука Slack)
- Метка:
- Сохраните
Шаг 2 — Создать пайплайн
Откройте ваш проект, нажмите Новый пайплайн → назовите nightly-audit.
Шаг 3 — Настроить триггер
Нажмите Триггер:
- Тип: Schedule
- Cron:
0 2 * * *(каждый день в 2:00 UTC)
Шаг 4 — Добавить стейдж «Аудит»
Добавьте стейдж Аудит.
Дважды кликните для входа. Добавьте джоб:
- Название:
dependency-audit - Runs on:
ubuntu-latest
Добавьте шаги:
Шаг 1 — Checkout
- Тип:
git/ Операция:checkout
Шаг 2 — Установить зависимости
- Тип:
shell_command/ Скрипт:npm ci
Шаг 3 — Проверить устаревшие пакеты
- Тип:
shell_command - Скрипт:bash
npm outdated || true - Метка:
Проверить устаревшие пакеты
(|| true предотвращает провал джоба при наличии устаревших пакетов — мы хотим отчитаться, а не блокировать.)
Шаг 4 — Аудит безопасности
- Тип:
shell_command - Скрипт:bash
npm audit --audit-level=high - Метка:
Аудит безопасности
Шаг 5 — Уведомить Slack
- Тип:
notification - Канал:
slack - Учётные данные:
Slack Webhook — #alerts - Сообщение:
✅ Ночной аудит my-app завершён
TIP
Чтобы отправлять разные сообщения при успехе и при ошибке, добавьте два шага уведомления: один с включённым Продолжать при ошибке на шаге аудита, и условия в YAML. Проще настроить это напрямую в YAML после экспорта.
Шаг 5 — Сохранить и экспортировать
Нажмите Сохранить, затем Экспорт → GitHub Actions → Скачать.
Закоммитьте nightly-audit.yml в .github/workflows/.
Результат
Пайплайн будет запускаться каждую ночь в 2:00. Если аудит безопасности найдёт уязвимости высокой степени, джоб завершится с ошибкой и GitHub отправит вам email-уведомление. В любом случае Slack получит сообщение.
Изменение расписания
Чтобы изменить частоту, обновите триггер в pipel8ne и повторно экспортируйте:
| Цель | Cron |
|---|---|
| Каждый понедельник в 9:00 | 0 9 * * 1 |
| Каждые 6 часов | 0 */6 * * * |
| Первое число каждого месяца | 0 0 1 * * |
| Будни в 8:00 | 0 8 * * 1-5 |
