Automazione
L'automazione di Rudel impedisce che le sandbox usa e getta si accumulino senza fine. Un evento WP-Cron orario, rudel_scheduled_cleanup, può:
- eseguire la policy di pulizia (scadenza, età e inattività)
- eseguire la pulizia dei branch uniti
- segnalare le sandbox scadute o prossime alla scadenza
Configurazione
L'automazione legge queste chiavi dall'opzione rudel_config. L'elenco completo è disponibile in Configurazione.
| Chiave | Scopo | Predefinito |
|---|---|---|
auto_cleanup_enabled |
Esegue la policy di pulizia a ogni evento | 1 |
auto_cleanup_merged |
Rimuove anche i branch dei worktree Git uniti | 0 |
expiring_environment_notice_days |
Segnala le sandbox in scadenza entro N giorni | 0 |
max_age_days |
Limite di età usato dalla policy di pulizia | 0 |
max_idle_days |
Limite di inattività usato dalla policy di pulizia | 0 |
default_ttl_days |
Scadenza assegnata alle nuove sandbox | 0 |
Con le impostazioni predefinite, l'evento è pianificato ma rimuove solo le sandbox con una scadenza esplicita passata, perché non è impostato alcun limite di età o inattività né un TTL predefinito.
WP-Cron
L'attivazione pianifica l'evento e a ogni richiesta ne controlla di nuovo la pianificazione: l'evento esiste se uno tra auto_cleanup_enabled, auto_cleanup_merged o expiring_environment_notice_days è diverso da zero, altrimenti viene rimosso. La disattivazione lo rimuove.
Non ci sono comandi di automazione. Modificate le impostazioni 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 mostra Auto cleanup, Auto cleanup merged, Expiry notice days e Automation scheduled.
Report sulle scadenze
Quando è impostato expiring_environment_notice_days, ogni esecuzione raccoglie le sandbox con una expires_at entro quel numero di giorni e le passa all'azione rudel_after_automation_expiring_environments, suddividendole in expiring e expired. Rudel non invia notifiche autonomamente; collegate l'azione per avvisare i proprietari.
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'] );
}
}
);
Eseguirla ora
Usate la pulizia manuale per esecuzioni locali o CI deterministiche:
wp rudel cleanup --dry-run
wp rudel cleanup
Da PHP, Rudel::run_automation() esegue le stesse attività dell'evento cron.