Aller au contenu

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 :

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

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

L’exécuter maintenant

Utilisez le nettoyage manuel pour des exécutions locales ou CI déterministes :

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