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:
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.
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:
wp rudel cleanup --dry-run
wp rudel cleanup
Von PHP aus führt Rudel::run_automation() dieselben Aufgaben wie das Ereignis cron aus.