Preskoči na vsebino

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:

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

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

Zagon zdaj

Za predvidljive lokalne zagone ali zagone CI uporabite ročno čiščenje:

Lupina
wp rudel cleanup --dry-run
wp rudel cleanup

Iz PHP Rudel::run_automation() zažene ista opravila kot dogodek cron.