Estudo de devops
[DOCS] Pesquisa Técnica e Planejamento de CI/CD
📋 Descrição
Esta issue documenta o estudo sobre a implementação de um pipeline de CI/CD (Integração Contínua e Entrega Contínua) para o projeto SafeStreets. O foco é automatizar a validação do código Python/FastAPI e garantir que as novas funcionalidades, como a extração de dados via IA, não quebrem o sistema.
O pipeline visa transformar o fluxo de trabalho manual em um processo automatizado, desde o envio do código ao GitHub até a disponibilização em um ambiente de execução controlado.
✅ Tarefas
[x] Documentar o fluxo de CI/CD para o Squad 01.
[ ] Configurar GitHub Actions para rodar o pytest automaticamente em cada Push.
[ ] Implementar validação de linting (Flake8 ou Black) para padronização do código.
[ ] Configurar GitHub Secrets para gerenciar a GOOGLE_API_KEY de forma segura.
[ ] Criar pipeline de Build para a imagem Docker do backend.
🔗 Contexto Adicional (Estudo Técnico)
1. Integração Contínua (CI) no SafeStreets
A Integração Contínua é a prática de mesclar o código dos desenvolvedores em um repositório compartilhado várias vezes ao dia para detectar erros precocemente.
Pipeline de Testes: Utilizaremos o pytest e o httpx para validar endpoints críticos como o /health.
Fail Fast: O pipeline será configurado para falhar imediatamente caso os testes unitários falhem, impedindo que bugs cheguem à branch main.
2. Entrega e Implantação Contínua (CD)
O CD automatiza a entrega do software em ambientes de teste ou produção após a fase de build.
Docker: O uso de contêineres garante que o pipeline execute o software em um ambiente idêntico ao de desenvolvimento, eliminando conflitos de infraestrutura.
3. Segurança e Gerenciamento de Secrets
Para o funcionamento da extração de crimes, o projeto utiliza a chave de API do Gemini.
GitHub Secrets: Nenhuma credencial ou chave (como a GOOGLE_API_KEY) deve ser escrita diretamente no código ou no pipeline.
Proteção de Dados: Utilizaremos o recurso de Secrets do GitHub para injetar essas variáveis de forma segura apenas durante a execução do pipeline, mantendo a conformidade com o arquivo .gitignore já implementado no projeto.
📌 Referências Técnicas
Arquitetura Miro/C4 — Diagramas de Containers e Componentes.
PR #26 - Setup Backend — Estrutura inicial do FastAPI e Routers.
Guia de Infraestrutura (Docker & FastAPI) — Roteiro prático de implementação do Squad.