Vai al contenuto

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:

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 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.

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

Eseguirla ora

Usate la pulizia manuale per esecuzioni locali o CI deterministiche:

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

Da PHP, Rudel::run_automation() esegue le stesse attività dell'evento cron.