Pular para conteúdo

Comandos Make

Referência de todos os comandos disponíveis via make. Execute make help para um resumo no terminal.


Desenvolvimento

Comando O que faz
make install Instala todas as dependências Python (via uv sync --all-extras) e configura os pre-commit hooks
make sync Atualiza dependências sem instalar hooks (útil após git pull)
make dev-api Sobe a App API com hot reload via Doppler (config dev, porta 8000)
make dev-backoffice-api Sobe a Backoffice API com hot reload via Doppler (config dev, porta 8001)
make dev-worker Sobe o Celery Worker com Doppler (config dev, filas default e indexing)

Banco de Dados

Comando O que faz
make db-start Sobe PostgreSQL local via Supabase CLI (Docker) com pgvector e demais extensões
make db-stop Para o container do PostgreSQL local
make db-reset Derruba e recria o banco, reaplicando todas as migrations e seeds
make db-status Lista migrations e indica quais foram aplicadas (supabase migration list)
make db-migration Cria um novo arquivo de migration vazio (pede nome interativamente)
make db-diff Gera uma migration a partir das diferenças entre o schema declarativo e o banco local
make db-push Aplica migrations no banco remoto (mostra dry-run primeiro, pede confirmação)
make db-link Linka o projeto local a um projeto remoto do Supabase (pede project ref)

Fluxo de migration

Edite supabase/schemas/make db-diff (gera o arquivo em supabase/migrations/) → revise → make db-reset (valida local) → abra PR.


Testes

Comando O que faz
make test Roda todos os testes exceto tests/integration
make test-unit Roda apenas os testes unitários (marcados com @pytest.mark.unit), sem banco
make test-integration Roda testes de integração via Doppler (repositórios, serviços, com banco real)
make test-e2e Roda testes HTTP/WebSocket via Doppler (contrato de API completo)
make test-all Roda unit + integration + e2e em sequência

Testes de integração localmente

make test-integration e make test-e2e requerem make db-start rodando e Doppler configurado.


Qualidade de Código

Comando O que faz
make lint Verifica formatação e lint com ruff (apenas leitura, não altera arquivos)
make format Formata todos os arquivos Python com ruff format
make fix Corrige automaticamente problemas de lint com ruff check --fix
make typecheck Verifica tipos com ty check (exclui tests/)
make pre-commit Roda todos os hooks do pre-commit em todos os arquivos
make all Roda lint + typecheck + test em sequência

Antes de abrir um PR

make fix && make lint && make typecheck && make test-unit cobre a maioria dos checks do CI sem precisar do banco.


Docker

Comando O que faz
make docker-build Builda a imagem Docker da App API (spryx-backend:latest)
make docker-run Roda a App API em Docker com token Doppler de 1 minuto (porta 8000)
make worker-build Builda a imagem Docker do Worker (spryx-worker:latest)
make worker-run Roda o Worker em Docker com token Doppler de 10 minutos
make worker-logs Exibe logs do container do Worker em modo follow
make worker-stop Para o container do Worker
make worker-shell Abre um shell interativo dentro do container do Worker
make docs-docker-build Builda a imagem Docker da documentação (spryx-docs:latest)
make docs-docker-run Roda a documentação via nginx no Docker (porta 8080)

Documentação

Comando O que faz
make docs-serve Serve a documentação localmente com hot reload (http://localhost:8000)
make docs-build Gera o site estático em site/
make docs-docker-build Builda a imagem Docker nginx com o site estático
make docs-docker-run Roda a imagem em http://localhost:8080

Outros

Comando O que faz
make mcp-sync Sincroniza configuração MCP de .mcp.json para Cursor e Codex
make clean Remove artefatos de build (.pytest_cache, .ruff_cache, __pycache__, .pyc)
make help Lista todos os comandos disponíveis com descrição resumida