Перейти до вмісту

Автоматизація

Автоматизація 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 самостійно не надсилає сповіщень; підключіть до цієї дії сповіщення власників.

PHP
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.