Přejít k obsahu

Automatizace

Automatizace Rudel brání neustálému hromadění dočasných sandboxů. Jedna hodinová událost WP-Cron, rudel_scheduled_cleanup, může:

  • spustit zásady úklidu (končící platnost, stáří a nečinnost)
  • spustit úklid větví sloučených do hlavní větve
  • nahlásit sandboxy, jejichž platnost skončila nebo brzy skončí

Konfigurace

Automatizace načítá tyto klíče z volby rudel_config. Úplný seznam najdete v části Konfigurace.

Klíč Účel Výchozí hodnota
auto_cleanup_enabled Spustí zásady úklidu při každé události 1
auto_cleanup_merged Navíc odstraní sandboxy s propojenými pracovními větvemi Git, které byly sloučeny 0
expiring_environment_notice_days Nahlásí sandboxy, jejichž platnost skončí během N dní 0
max_age_days Limit stáří používaný zásadami úklidu 0
max_idle_days Limit nečinnosti používaný zásadami úklidu 0
default_ttl_days Doba platnosti přidělená novým sandboxům 0

Při výchozím nastavení je událost naplánována, ale odstraní pouze sandboxy s výslovně nastavenou dobou platnosti v minulosti, protože není nastaven limit stáří ani nečinnosti ani výchozí TTL.

WP-Cron

Aktivace naplánuje událost a každý požadavek její plán znovu ověří: událost existuje, pokud je některá z hodnot auto_cleanup_enabled, auto_cleanup_merged nebo expiring_environment_notice_days nenulová; jinak se odstraní. Deaktivace ji odstraní.

Příkazy pro automatizaci nejsou k dispozici. Změňte nastavení v 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 zobrazuje Auto cleanup, Auto cleanup merged, Expiry notice days a Automation scheduled.

Hlášení o končící platnosti

Je-li nastavena hodnota expiring_environment_notice_days, každé spuštění shromáždí sandboxy, jejichž expires_at nastane během daného počtu dní, a předá je akci rudel_after_automation_expiring_environments rozdělené na expiring a expired. Rudel samo oznámení neodesílá; napojte na tuto akci upozornění vlastníků.

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

Okamžité spuštění

Pro předvídatelná místní spuštění nebo běhy CI použijte ruční úklid:

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

Z PHP spustí Rudel::run_automation() stejné úlohy jako událost cron.