Avtomatizacija
Avtomatizacija za Rudel preprečuje, da bi se začasna peskovna okolja kopičila v nedogled. En urni dogodek WP-Cron, rudel_scheduled_cleanup, lahko:
- zažene pravilnik čiščenja (potek veljavnosti, starost in nedejavnost)
- zažene čiščenje združenih vej
- poroča o peskovnih okoljih s preteklo ali bližajočo se veljavnostjo
Konfiguracija
Avtomatizacija bere te ključe iz možnosti rudel_config. Celoten seznam je v razdelku Konfiguracija.
| Ključ | Namen | Privzeto |
|---|---|---|
auto_cleanup_enabled |
Zažene pravilnik čiščenja ob vsakem dogodku | 1 |
auto_cleanup_merged |
Odstrani tudi peskovna okolja z združenimi vejami delovne kopije Git | 0 |
expiring_environment_notice_days |
Poroča o peskovnih okoljih, ki jim veljavnost poteče v N dneh | 0 |
max_age_days |
Starostna omejitev, ki jo uporablja pravilnik čiščenja | 0 |
max_idle_days |
Omejitev nedejavnosti, ki jo uporablja pravilnik čiščenja | 0 |
default_ttl_days |
Čas do poteka veljavnosti za nova peskovna okolja | 0 |
S privzetimi nastavitvami je dogodek načrtovan, vendar odstrani samo peskovna okolja z izrecno določenim datumom poteka veljavnosti v preteklosti, saj starostna omejitev, omejitev nedejavnosti in privzeti TTL niso nastavljeni.
WP-Cron
Ob aktivaciji se dogodek načrtuje, vsaka zahteva pa znova preveri urnik: dogodek obstaja, dokler je katera koli od vrednosti auto_cleanup_enabled, auto_cleanup_merged ali expiring_environment_notice_days neničelna, sicer se odstrani. Ob deaktivaciji se odstrani.
Ukazov za avtomatizacijo ni. Spremenite nastavitve v 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 prikaže Auto cleanup, Auto cleanup merged, Expiry notice days in Automation scheduled.
Poročila o poteku veljavnosti
Ko je nastavljena vrednost expiring_environment_notice_days, vsak zagon zbere peskovna okolja, ki jim expires_at poteče v tem številu dni, in jih posreduje dejanju rudel_after_automation_expiring_environments, razdeljena na expiring in expired. Rudel sam ne pošilja obvestil; povežite dejanje z obveščanjem lastnikov.
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'] );
}
}
);
Zagon zdaj
Za predvidljive lokalne zagone ali zagone CI uporabite ročno čiščenje:
wp rudel cleanup --dry-run
wp rudel cleanup
Iz PHP Rudel::run_automation() zažene ista opravila kot dogodek cron.