Epic_1_Sprint_1 Set up Github - robbiemu/aclarai GitHub Wiki

Tarefa: Configurar GitHub e GitHub Actions para CI do Monorepo

Descrição

Configurar o repositório GitHub do monorepo para o projeto aclarai e implementar GitHub Actions para integração contínua (CI), garantindo que todos os merges para a branch main passem por verificações automatizadas que cobrem todos os serviços do monorepo.

Escopo

Incluído

  • Criação do repositório GitHub para o projeto aclarai (agora um monorepo único)
  • Configuração de proteção da branch main para exigir revisões de código
  • Implementação de workflows de GitHub Actions para:
    • Verificação de linting e formatação de código para todos os serviços Python
    • Execução de testes unitários para todos os serviços
    • Verificação de segurança básica
    • Validação de build do Docker para todas as imagens de serviço
  • Documentação do processo de CI para a equipe

Excluído

  • Configuração de CD (Continuous Deployment)
  • Integração com ferramentas de análise de código externas
  • Configuração de ambientes de teste ou produção
  • Implementação de testes de integração complexos entre serviços (foco inicial é no nível de código)

Critérios de Aceitação

  • Repositório GitHub criado com estrutura básica de diretórios de monorepo
  • Branch main protegida, exigindo pelo menos uma aprovação para merge
  • Workflow de GitHub Actions configurado e funcionando para verificações básicas em todos os serviços
  • Todos os membros da equipe têm acesso apropriado ao repositório
  • Documentação clara sobre o processo de CI disponível no README

Dependências

  • Acesso administrativo à organização GitHub
  • Definição da estrutura básica do projeto (agora como monorepo)
  • Decisões sobre padrões de código e ferramentas de linting

Entregáveis

  • Repositório GitHub configurado
  • Arquivos de workflow do GitHub Actions (.github/workflows/)
  • Documentação do processo de CI no README
  • Relatório de verificação do funcionamento do CI

Estimativa de Esforço

  • 1 dia de trabalho

Riscos e Mitigações

  • Risco: Configuração inadequada de CI pode atrasar o desenvolvimento
    • Mitigação: Começar com verificações básicas e expandir gradualmente
  • Risco: Falsos positivos em verificações automatizadas
    • Mitigação: Testar workflows localmente antes de implementar
  • Risco: Resistência da equipe ao processo de CI
    • Mitigação: Documentar claramente os benefícios e fornecer treinamento

Notas Técnicas

  • Considerar o uso de GitHub Actions pré-configuradas para Docker e Python.
  • Implementar cache de dependências para acelerar os workflows (particularmente importante em monorepos).
  • Configurar notificações apropriadas para falhas de CI.
  • Considerar a implementação de badges de status no README.
  • Prever futuras otimizações de CI para monorepos, como gatilhos baseados em caminhos (paths-ignore, paths) para evitar execuções desnecessárias em Pull Requests que afetam apenas um subdiretório específico. Essa otimização não é para este sprint, mas é uma consideração importante para a performance futura.