Pular para o conteúdo

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:

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 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.

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

Executar agora

Use a limpeza manual para execuções locais ou de CI determinísticas:

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

A partir de PHP, Rudel::run_automation() executa as mesmas tarefas do evento cron.