Przejdź do treści

Automatyzacja

Automatyzacja Rudel zapobiega nieograniczonemu gromadzeniu się tymczasowych piaskownic. Jedno cogodzinne zdarzenie WP-Cron, rudel_scheduled_cleanup, może:

  • uruchamiać zasady czyszczenia (termin wygaśnięcia, wiek i bezczynność)
  • uruchamiać czyszczenie scalonych gałęzi
  • zgłaszać piaskownice, których termin wygaśnięcia minął lub wkrótce minie

Konfiguracja

Automatyzacja odczytuje te klucze z opcji rudel_config. Pełną listę znajdziesz w sekcji Konfiguracja.

Klucz Przeznaczenie Domyślnie
auto_cleanup_enabled Uruchamiaj zasady czyszczenia przy każdym zdarzeniu 1
auto_cleanup_merged Usuwaj również piaskownice z połączonymi gałęziami drzew roboczych Git 0
expiring_environment_notice_days Zgłaszaj piaskownice, których termin wygaśnięcia przypada w ciągu N dni 0
max_age_days Limit wieku używany przez zasady czyszczenia 0
max_idle_days Limit bezczynności używany przez zasady czyszczenia 0
default_ttl_days Termin wygaśnięcia nowych piaskownic 0

Przy ustawieniach domyślnych zdarzenie jest zaplanowane, ale usuwa tylko piaskownice, których jawnie ustawiony termin wygaśnięcia już minął, ponieważ nie określono limitu wieku ani bezczynności i nie ustawiono domyślnego czasu życia.

WP-Cron

Aktywacja planuje zdarzenie, a każde żądanie ponownie sprawdza harmonogram: zdarzenie istnieje, gdy którakolwiek z wartości auto_cleanup_enabled, auto_cleanup_merged lub expiring_environment_notice_days jest różna od zera, a w przeciwnym razie zostaje usunięte. Dezaktywacja usuwa je.

Nie ma poleceń automatyzacji. Zmień ustawienia w rudel_config:

Powłoka
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 wyświetla Auto cleanup, Auto cleanup merged, Expiry notice days i Automation scheduled.

Raporty o terminach wygaśnięcia

Po ustawieniu expiring_environment_notice_days każde uruchomienie zbiera piaskownice, których expires_at przypada w ciągu wskazanej liczby dni, i przekazuje je do działania rudel_after_automation_expiring_environments w podziale na expiring i expired. Rudel samo nie wysyła powiadomień; podepnij do działania funkcję powiadamiania właścicieli.

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'] );
        }
    }
);

Uruchamianie teraz

Użyj ręcznego czyszczenia, aby uzyskać deterministyczne uruchomienia lokalne lub w CI:

Powłoka
wp rudel cleanup --dry-run
wp rudel cleanup

Z poziomu PHP polecenie Rudel::run_automation() uruchamia te same zadania co zdarzenie cron.