Zum Inhalt springen

Automatisierung

Die Automatisierung von Rudel verhindert, dass sich kurzlebige Sandboxes auf Dauer ansammeln. Ein stündliches WP-Cron-Ereignis, rudel_scheduled_cleanup, kann:

  • die Bereinigungsrichtlinie ausführen (Ablauf, Alter und Inaktivität)
  • zusammengeführte Branches bereinigen
  • Sandboxes melden, die abgelaufen sind oder bald ablaufen

Konfiguration

Die Automatisierung liest diese Schlüssel aus der Option rudel_config. Die vollständige Liste findest du unter Konfiguration.

Schlüssel Zweck Standardwert
auto_cleanup_enabled Bereinigungsrichtlinie bei jedem Ereignis ausführen 1
auto_cleanup_merged Zusätzlich Sandboxes mit zusammengeführten Git-Worktree-Branches entfernen 0
expiring_environment_notice_days Sandboxes melden, die innerhalb von N Tagen ablaufen 0
max_age_days Altersgrenze der Bereinigungsrichtlinie 0
max_idle_days Inaktivitätsgrenze der Bereinigungsrichtlinie 0
default_ttl_days Ablaufzeit für neue Sandboxes 0

Mit den Standardwerten ist das Ereignis zwar geplant, entfernt aber nur Sandboxes, deren Ablauf ausdrücklich in der Vergangenheit liegt, da weder eine Alters- oder Inaktivitätsgrenze noch eine Standard-TTL festgelegt ist.

WP-Cron

Bei der Aktivierung wird das Ereignis geplant und bei jeder Anfrage der Zeitplan erneut geprüft: Das Ereignis besteht, solange einer der Werte auto_cleanup_enabled, auto_cleanup_merged oder expiring_environment_notice_days ungleich null ist, andernfalls wird es entfernt. Bei der Deaktivierung wird es ebenfalls entfernt.

Es gibt keine Automatisierungsbefehle. Ändere die Einstellungen in 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 zeigt Auto cleanup, Auto cleanup merged, Expiry notice days und Automation scheduled an.

Ablaufmeldungen

Wenn expiring_environment_notice_days gesetzt ist, erfasst jeder Lauf Sandboxes, deren expires_at innerhalb dieser Anzahl von Tagen liegt, und übergibt sie an die Aktion rudel_after_automation_expiring_environments, aufgeteilt in expiring und expired. Rudel versendet selbst keine Benachrichtigungen; verknüpfe die Aktion mit einer Benachrichtigung an die Zuständigen.

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

Jetzt ausführen

Verwende für deterministische lokale oder CI-Läufe die manuelle Bereinigung:

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

Von PHP aus führt Rudel::run_automation() dieselben Aufgaben wie das Ereignis cron aus.