Ga naar de inhoud

Automatisering

De automatisering van Rudel voorkomt dat wegwerpsandboxes zich eindeloos opstapelen. Eén WP-Cron-event per uur, rudel_scheduled_cleanup, kan:

  • het opschoningsbeleid uitvoeren (vervaldatum, leeftijd en inactiviteit)
  • opschoning van samengevoegde branches uitvoeren
  • rapporteren over sandboxes die zijn verlopen of bijna verlopen

Configuratie

Automatisering leest deze sleutels uit de optie rudel_config. De volledige lijst staat onder Configuratie.

Sleutel Doel Standaardwaarde
auto_cleanup_enabled Het opschoningsbeleid bij elk event uitvoeren 1
auto_cleanup_merged Ook sandboxes verwijderen waarvan de Git-worktreebranches zijn samengevoegd 0
expiring_environment_notice_days Sandboxes rapporteren die binnen N dagen verlopen 0
max_age_days Leeftijdslimiet voor het opschoningsbeleid 0
max_idle_days Inactiviteitslimiet voor het opschoningsbeleid 0
default_ttl_days Vervaldatum voor nieuwe sandboxes 0

Met de standaardwaarden wordt het event gepland, maar worden alleen sandboxes verwijderd die expliciet een vervaldatum in het verleden hebben; er is immers geen leeftijds- of inactiviteitslimiet ingesteld en ook geen standaard-TTL.

WP-Cron

Activering plant het event in en bij elk verzoek wordt de planning opnieuw gecontroleerd: het event bestaat zolang een van auto_cleanup_enabled, auto_cleanup_merged of expiring_environment_notice_days niet nul is, en wordt anders verwijderd. Deactivering verwijdert het event.

Er zijn geen automatiseringsopdrachten. Wijzig de instellingen 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 toont Auto cleanup, Auto cleanup merged, Expiry notice days en Automation scheduled.

Vervalrapporten

Als expiring_environment_notice_days is ingesteld, verzamelt elke uitvoering sandboxes met een expires_at binnen dat aantal dagen en geeft ze door aan de actie rudel_after_automation_expiring_environments, opgesplitst in expiring en expired. Rudel verstuurt zelf geen meldingen; koppel de actie aan een melding voor eigenaren.

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

Nu uitvoeren

Gebruik handmatige opschoning voor voorspelbare lokale uitvoeringen of CI-runs:

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

Vanuit PHP voert Rudel::run_automation() dezelfde taken uit als het event cron.