Automatisation
L’automatisation de Rudel évite l’accumulation indéfinie de bacs à sable temporaires. Un événement WP-Cron horaire, rudel_scheduled_cleanup, peut :
- appliquer la politique de nettoyage (expiration, ancienneté et inactivité)
- nettoyer les branches fusionnées
- signaler les bacs à sable expirés ou proches de l’expiration
Configuration
L’automatisation lit ces clés dans l’option rudel_config. La liste complète figure dans Configuration.
| Clé | Fonction | Valeur par défaut |
|---|---|---|
auto_cleanup_enabled |
Applique la politique de nettoyage à chaque événement | 1 |
auto_cleanup_merged |
Supprime également les bacs à sable dont les branches de worktree Git sont fusionnées | 0 |
expiring_environment_notice_days |
Signale les bacs à sable expirant dans N jours | 0 |
max_age_days |
Limite d’ancienneté utilisée par la politique de nettoyage | 0 |
max_idle_days |
Limite d’inactivité utilisée par la politique de nettoyage | 0 |
default_ttl_days |
Expiration attribuée aux nouveaux bacs à sable | 0 |
Avec les valeurs par défaut, l’événement est planifié, mais ne supprime que les bacs à sable dont la date d’expiration explicite est passée, car aucune limite d’ancienneté ou d’inactivité ni durée de vie par défaut n’est définie.
WP-Cron
L’activation planifie l’événement et chaque requête vérifie à nouveau sa planification : l’événement existe tant que l’une des valeurs auto_cleanup_enabled, auto_cleanup_merged ou expiring_environment_notice_days est différente de zéro ; sinon, il est supprimé. La désactivation le supprime.
Il n’existe aucune commande d’automatisation. Modifiez les réglages dans 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 affiche Auto cleanup, Auto cleanup merged, Expiry notice days et Automation scheduled.
Rapports d’expiration
Lorsque expiring_environment_notice_days est défini, chaque exécution recueille les bacs à sable dont l’expires_at intervient dans le nombre de jours indiqué et les transmet à l’action rudel_after_automation_expiring_environments, répartis entre expiring et expired. Rudel n’envoie aucune notification ; associez une notification à l’action pour prévenir les propriétaires.
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'] );
}
}
);
L’exécuter maintenant
Utilisez le nettoyage manuel pour des exécutions locales ou CI déterministes :
wp rudel cleanup --dry-run
wp rudel cleanup
Depuis PHP, Rudel::run_automation() exécute les mêmes tâches que l’événement cron.