Loop de Verificação Laravel
Execute antes de PRs, após mudanças importantes e antes de deploys.
Quando Usar
- Antes de abrir um pull request para um projeto Laravel
- Após grandes refatorações ou atualizações de dependências
- Verificação pré-deploy para staging ou produção
- Executar o pipeline completo de lint -> teste -> segurança -> prontidão para deploy
Como Funciona
- Execute as fases sequencialmente, desde checagens de ambiente até prontidão para deploy, para que cada camada se baseie na anterior.
- As checagens de ambiente e do Composer são a porta de entrada para todo o resto; pare imediatamente se falharem.
- Linting/análise estática devem estar limpos antes de executar testes completos e cobertura.
- As revisões de segurança e migrações acontecem após os testes para que você verifique o comportamento antes de dados ou etapas de lançamento.
- As checagens de prontidão de build/deploy e filas/agendadores são as barreiras finais; qualquer falha bloqueia o lançamento.
Fase 1: Checagens de Ambiente
php -v
composer --version
php artisan --version
- Verifique se
.envestá presente e as chaves obrigatórias existem - Confirme que
APP_DEBUG=falsepara ambientes de produção - Confirme que
APP_ENVcorresponde ao destino do deploy (production,staging)
Se estiver usando Laravel Sail localmente:
./vendor/bin/sail php -v
./vendor/bin/sail artisan --version
Fase 1.5: Composer e Autoload
composer validate
composer dump-autoload -o
Fase 2: Linting e Análise Estática
vendor/bin/pint --test
vendor/bin/phpstan analyse
Se seu projeto usa Psalm em vez de PHPStan:
vendor/bin/psalm
Fase 3: Testes e Cobertura
php artisan test
Cobertura (CI):
XDEBUG_MODE=coverage php artisan test --coverage
Exemplo de CI (formatação -> análise estática -> testes):
vendor/bin/pint --test
vendor/bin/phpstan analyse
XDEBUG_MODE=coverage php artisan test --coverage
Fase 4: Verificações de Segurança e Dependências
composer audit
Fase 5: Banco de Dados e Migrações
php artisan migrate --pretend
php artisan migrate:status
- Revise migrações destrutivas com cuidado
- Garanta que os nomes dos arquivos de migração sigam
Y_m_d_His_*(ex.:2025_03_14_154210_create_orders_table.php) e descrevam a alteração claramente - Garanta que rollbacks são possíveis
- Verifique os métodos
down()e evite perda irreversível de dados sem backups explícitos
Fase 6: Prontidão de Build e Deploy
php artisan optimize:clear
php artisan config:cache
php artisan route:cache
php artisan view:cache
- Certifique-se de que os aquecimentos de cache sejam bem-sucedidos na configuração de produção
- Verifique se os workers de fila e o agendador estão configurados
- Confirme que
storage/ebootstrap/cache/são graváveis no ambiente de destino
Fase 7: Verificações de Fila e Agendador
php artisan schedule:list
php artisan queue:failed
Se Horizon estiver sendo usado:
php artisan horizon:status
Se queue:monitor estiver disponível, use-o para verificar o backlog sem processar jobs:
php artisan queue:monitor default --max=100
Verificação ativa (apenas em staging): despache um job no-op para uma fila dedicada e execute um único worker para processá-lo (certifique-se de que uma conexão de fila não-sync esteja configurada).
php artisan tinker --execute="dispatch((new App\\Jobs\\QueueHealthcheck())->onQueue('healthcheck'))"
php artisan queue:work --once --queue=healthcheck
Verifique se o job produziu o efeito colateral esperado (entrada de log, linha na tabela healthcheck ou métrica).
Execute isso apenas em ambientes que não sejam de produção, onde processar um job de teste é seguro.
Exemplos
Fluxo mínimo:
php -v
composer --version
php artisan --version
composer validate
vendor/bin/pint --test
vendor/bin/phpstan analyse
php artisan test
composer audit
php artisan migrate --pretend
php artisan config:cache
php artisan queue:failed
Pipeline estilo CI:
composer validate
composer dump-autoload -o
vendor/bin/pint --test
vendor/bin/phpstan analyse
XDEBUG_MODE=coverage php artisan test --coverage
composer audit
php artisan migrate --pretend
php artisan optimize:clear
php artisan config:cache
php artisan route:cache
php artisan view:cache
php artisan schedule:list