Gå til indhold

Automatisering

Rudels automatisering forhindrer, at midlertidige sandkasser ophobes for altid. Én WP-Cron-hændelse i timen, rudel_scheduled_cleanup, kan:

  • køre oprydningspolitikken (udløb, alder og inaktivitet)
  • rydde op i flettede grene
  • rapportere om sandkasser, der er udløbet eller snart udløber

Konfiguration

Automatisering læser disse nøgler fra indstillingen rudel_config. Den fulde liste findes under Konfiguration.

Nøgle Formål Standardværdi
auto_cleanup_enabled Kør oprydningspolitikken ved hver hændelse 1
auto_cleanup_merged Fjern også sandkasser med flettede worktree-grene Git 0
expiring_environment_notice_days Rapportér om sandkasser, der udløber inden for N dage 0
max_age_days Aldersgrænse, der bruges af oprydningspolitikken 0
max_idle_days Inaktivitetsgrænse, der bruges af oprydningspolitikken 0
default_ttl_days Udløbstid, der tildeles nye sandkasser 0

Med standardindstillingerne er hændelsen planlagt, men fjerner kun sandkasser med en udtrykkelig udløbsdato i fortiden, fordi der ikke er angivet nogen alders- eller inaktivitetsgrænse eller standard-TTL.

WP-Cron

Aktivering planlægger hændelsen, og hver anmodning kontrollerer tidsplanen igen: Hændelsen findes, så længe en af auto_cleanup_enabled, auto_cleanup_merged eller expiring_environment_notice_days er forskellig fra nul, og fjernes ellers. Deaktivering fjerner den.

Der er ingen automatiseringskommandoer. Skift indstillingerne i rudel_config:

Shell
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 viser Auto cleanup, Auto cleanup merged, Expiry notice days og Automation scheduled.

Udløbsrapporter

Når expiring_environment_notice_days er angivet, indsamler hver kørsel sandkasser med en expires_at inden for det angivne antal dage og sender dem til handlingen rudel_after_automation_expiring_environments, opdelt i expiring og expired. Rudel sender ikke selv meddelelser; tilknyt handlingen for at underrette ejere.

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

Kør nu

Brug manuel oprydning til forudsigelige lokale kørsler eller CI-kørsler:

Shell
wp rudel cleanup --dry-run
wp rudel cleanup

Fra PHP kører Rudel::run_automation() de samme opgaver som hændelsen cron.