Loop de Verificação Laravel
Execute antes de PRs, após grandes alterações e pré-deploy.
Quando Usar
- Antes de abrir um pull request para um projeto Laravel
- Após grandes refatorações ou upgrades de dependências
- Verificação de pré-deploy para staging ou produção
- Executar pipeline completo de lint -> teste -> segurança -> prontidão para deploy
Como Funciona
- Execute as fases sequencialmente, desde verificações de ambiente até prontidão para deploy, para que cada camada se baseie na anterior.
- Verificações de ambiente e do Composer bloqueiam todo o resto; pare imediatamente se falharem.
- Linting/análise estática devem estar limpos antes de executar testes completos e cobertura.
- Revisões de segurança e migração ocorrem após os testes para que o comportamento seja verificado antes das etapas de dados ou lançamento.
- Verificações de build/prontidão para deploy e filas/agendamento são portões finais; qualquer falha bloqueia o lançamento.
Fase 1: Verificações de Ambiente
php -v
composer --version
php artisan --version
- Verifique se o
.envestá presente e as chaves obrigatórias existem - Confirme que
APP_DEBUG=falsepara ambientes de produção - Confirme que
APP_ENVcorresponde ao deploy alvo (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 claramente a alteração - Garanta que reversões sejam possíveis
- Verifique os métodos
down()e evite perda irreversível de dados sem backups explícitos
Fase 6: Prontidão para Build e Deploy
php artisan optimize:clear
php artisan config:cache
php artisan route:cache
php artisan view:cache
- Garanta que o aquecimento de cache tenha sucesso na configuração de produção
- Verifique que workers de fila e agendador estão configurados
- Confirme que
storage/ebootstrap/cache/são graváveis no ambiente alvo
Fase 7: Verificações de Fila e Agendador
php artisan schedule:list
php artisan queue:failed
Se o Horizon for 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 staging): despache um job sem operação para uma fila dedicada e execute um único worker para processá-lo (garanta 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 de healthcheck ou métrica).
Execute isso apenas em ambientes não produtivos onde processar um job de teste seja 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