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:
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.
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:
wp rudel cleanup --dry-run
wp rudel cleanup
Z poziomu PHP polecenie Rudel::run_automation() uruchamia te same zadania co zdarzenie cron.