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:
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.
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:
wp rudel cleanup --dry-run
wp rudel cleanup
Desde PHP, Rudel::run_automation() ejecuta las mismas tareas que el evento cron.