Saltar al contenido

Automatización

La automatización de Rudel evita que se acumulen sandboxes desechables indefinidamente. Un evento horario de WP-Cron, rudel_scheduled_cleanup, puede:

  • ejecutar la política de limpieza (vencimiento, antigüedad e inactividad)
  • limpiar las ramas fusionadas
  • informar sobre los sandboxes vencidos o próximos a vencer

Configuración

La automatización lee estas claves de la opción rudel_config. Consulte la lista completa en Configuración.

Clave Propósito Valor predeterminado
auto_cleanup_enabled Ejecuta la política de limpieza en cada evento 1
auto_cleanup_merged También elimina los sandboxes con ramas de worktree fusionadas de Git 0
expiring_environment_notice_days Informa sobre los sandboxes que vencen dentro de N días 0
max_age_days Límite de antigüedad usado por la política de limpieza 0
max_idle_days Límite de inactividad usado por la política de limpieza 0
default_ttl_days Vencimiento asignado a los nuevos sandboxes 0

Con los valores predeterminados, el evento está programado, pero solo elimina los sandboxes cuyo vencimiento explícito ya pasó, porque no hay un límite de antigüedad o inactividad ni un TTL predeterminado.

WP-Cron

La activación programa el evento y cada solicitud vuelve a comprobar la programación: el evento existe mientras cualquiera de auto_cleanup_enabled, auto_cleanup_merged o expiring_environment_notice_days no sea cero; de lo contrario, se elimina. La desactivación lo elimina.

No hay comandos de automatización. Cambie los ajustes en 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 muestra Auto cleanup, Auto cleanup merged, Expiry notice days y Automation scheduled.

Informes de vencimiento

Cuando se establece expiring_environment_notice_days, cada ejecución recopila los sandboxes cuyo expires_at vence dentro de esa cantidad de días y los pasa a la acción rudel_after_automation_expiring_environments, separados en expiring y expired. Rudel no envía notificaciones por sí mismo; conecte la acción para avisar a los propietarios.

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

Ejecutarlo ahora

Use la limpieza manual para ejecuciones locales o de CI deterministas:

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

Desde PHP, Rudel::run_automation() ejecuta las mismas tareas que el evento cron.