Automação
A automação de Rudel impede que ambientes isolados descartáveis se acumulem indefinidamente. Um evento WP-Cron por hora, rudel_scheduled_cleanup, pode:
- executar a política de limpeza (expiração, idade e inatividade)
- limpar branches mesclados
- informar sobre ambientes isolados expirados ou próximos da expiração
Configuração
A automação lê estas chaves da opção rudel_config. A lista completa está em Configuração.
| Chave | Finalidade | Padrão |
|---|---|---|
auto_cleanup_enabled |
Executar a política de limpeza em cada evento | 1 |
auto_cleanup_merged |
Também remover ambientes isolados com branches de worktree Git mesclados | 0 |
expiring_environment_notice_days |
Informar sobre ambientes isolados que expiram em até N dias | 0 |
max_age_days |
Limite de idade usado pela política de limpeza | 0 |
max_idle_days |
Limite de inatividade usado pela política de limpeza | 0 |
default_ttl_days |
Prazo de expiração dos novos ambientes isolados | 0 |
Com os padrões, o evento é agendado, mas só remove ambientes isolados com uma expiração explícita no passado, pois não há limite de idade ou inatividade nem TTL padrão definido.
WP-Cron
A ativação agenda o evento, e cada solicitação verifica novamente o agendamento: o evento existe enquanto qualquer um de auto_cleanup_enabled, auto_cleanup_merged ou expiring_environment_notice_days for diferente de zero e é removido caso contrário. A desativação o remove.
Não há comandos de automação. Altere as configurações em 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 mostra Auto cleanup, Auto cleanup merged, Expiry notice days e Automation scheduled.
Relatórios de expiração
Quando expiring_environment_notice_days está definido, cada execução reúne os ambientes isolados com expires_at dentro desse número de dias e os passa à ação rudel_after_automation_expiring_environments, divididos em expiring e expired. Rudel não envia notificações por conta própria; associe a ação a uma notificação dos responsáveis.
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'] );
}
}
);
Executar agora
Use a limpeza manual para execuções locais ou de CI determinísticas:
wp rudel cleanup --dry-run
wp rudel cleanup
A partir de PHP, Rudel::run_automation() executa as mesmas tarefas do evento cron.