Hoppa till innehåll

Automatisering

Automatiseringen för Rudel hindrar tillfälliga sandlådor från att samlas på hög för alltid. En händelse WP-Cron som körs varje timme, rudel_scheduled_cleanup, kan:

  • köra rensningspolicyn (utgångstid, ålder och inaktivitet)
  • rensa grenar som har slagits samman
  • rapportera sandlådor som har löpt ut eller snart löper ut

Konfiguration

Automatiseringen läser dessa nycklar från alternativet rudel_config. Den fullständiga listan finns i Konfiguration.

Nyckel Syfte Standardvärde
auto_cleanup_enabled Kör rensningspolicyn vid varje händelse 1
auto_cleanup_merged Tar även bort sandlådor med sammanslagna Git-arbetsgrenar 0
expiring_environment_notice_days Rapporterar sandlådor som löper ut inom N dagar 0
max_age_days Åldersgräns som används av rensningspolicyn 0
max_idle_days Inaktivitetsgräns som används av rensningspolicyn 0
default_ttl_days Utgångstid för nya sandlådor 0

Med standardinställningarna schemaläggs händelsen men tar bara bort sandlådor vars angivna utgångstid har passerat, eftersom varken åldersgräns, inaktivitetsgräns eller standardvärde för TTL har angetts.

WP-Cron

Aktivering schemalägger händelsen, och varje förfrågan kontrollerar schemat på nytt: händelsen finns så länge något av auto_cleanup_enabled, auto_cleanup_merged eller expiring_environment_notice_days är skilt från noll, och tas annars bort. Inaktivering tar bort den.

Det finns inga automatiseringskommandon. Ändra inställningarna 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 visar Auto cleanup, Auto cleanup merged, Expiry notice days och Automation scheduled.

Rapporter om utgångstider

När expiring_environment_notice_days har angetts samlar varje körning in sandlådor med en expires_at inom det angivna antalet dagar och skickar dem till åtgärden rudel_after_automation_expiring_environments, uppdelade i expiring och expired. Rudel skickar inga aviseringar själv; koppla åtgärden till en avisering till ägarna.

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 den nu

Använd manuell rensning för förutsägbara lokala körningar eller CI-körningar:

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

Från PHP kör Rudel::run_automation() samma uppgifter som händelsen cron.