Автоматизація
Автоматизація Rudel не дає тимчасовим ізольованим середовищам накопичуватися безстроково. Щогодини може запускатися подія WP-Cron rudel_scheduled_cleanup, яка:
- застосовує політику очищення (за терміном дії, віком і часом бездіяльності)
- виконує очищення гілок, які було об’єднано
- повідомляє про середовища з завершеним або близьким до завершення терміном дії
Конфігурація
Автоматизація читає ці ключі з параметра rudel_config. Повний список наведено в розділі Конфігурація.
| Ключ | Призначення | Типове значення |
|---|---|---|
auto_cleanup_enabled |
Застосовувати політику очищення під час кожної події | 1 |
auto_cleanup_merged |
Також видаляти ізольовані середовища зі злитими гілками робочих дерев Git | 0 |
expiring_environment_notice_days |
Повідомляти про середовища, термін дії яких завершується протягом N днів | 0 |
max_age_days |
Обмеження за віком для політики очищення | 0 |
max_idle_days |
Обмеження часу бездіяльності для політики очищення | 0 |
default_ttl_days |
Термін дії для нових ізольованих середовищ | 0 |
За типових значень подію заплановано, але видаляються лише середовища з явно заданим терміном дії, який уже минув, оскільки обмеження за віком і часом бездіяльності та типовий термін дії не задано.
WP-Cron
Активація планує подію, а кожен запит повторно перевіряє розклад: подія існує, доки будь-яке з auto_cleanup_enabled, auto_cleanup_merged або expiring_environment_notice_days не дорівнює нулю, інакше її видаляють. Деактивація видаляє її.
Команд автоматизації немає. Змініть налаштування в rudel_config:
wp option update rudel_config '{"auto_cleanup_enabled":1,"max_idle_days":7,"expiring_environment_notice_days":2}' --format=json
wp rudel status
wp rudel status показує Auto cleanup, Auto cleanup merged, Expiry notice days і Automation scheduled.
Звіти про завершення строку дії
Якщо задано expiring_environment_notice_days, кожен запуск збирає пісочниці, у яких expires_at настає протягом зазначеної кількості днів, і передає їх дії rudel_after_automation_expiring_environments, розділивши на expiring і expired. Rudel самостійно не надсилає сповіщень; підключіть до цієї дії сповіщення власників.
add_action(
'rudel_after_automation_expiring_environments',
function ( array $report ): void {
foreach ( $report['expiring'] as $sandbox ) {
error_log( $sandbox['id'] . ' expires at ' . $sandbox['expires_at'] );
}
}
);
Запустити зараз
Для передбачуваних локальних запусків або запусків у CI використовуйте ручне очищення:
wp rudel cleanup --dry-run
wp rudel cleanup
З PHP команда Rudel::run_automation() виконує ті самі завдання, що й подія cron.