CI/CD Pipeline - C-Suite
Visão Geral
Este documento descreve o pipeline de CI/CD para o ecossistema C-Suite, incluindo GitHub Actions e GitLab CI.
Estrutura
GitHub Actions
.github/workflows/ci.yml- Pipeline principal de CI/CD.github/workflows/common-modules.yml- Testes de módulos comuns.github/workflows/docker-build.yml- Build manual de imagens Docker
GitLab CI
.gitlab-ci.yml- Pipeline completo para GitLab CI
Pipeline Principal
Etapas
- Lint e Code Quality
- Flake8 para linting
- Black para formatação
- isort para ordenação de imports
-
Mypy para type checking (opcional)
-
Testes
- Testes unitários e de integração
- Cobertura de código
-
Upload de relatórios de cobertura
-
Build Docker
- Build automático de imagens Docker
- Push para GitHub Container Registry (ghcr.io)
-
Cache de layers Docker
-
Security Scan
- Trivy para scan de vulnerabilidades
-
Upload de resultados para GitHub Security
-
Deploy
- Deploy automático para staging (branch develop)
- Deploy manual para produção (branch main)
Configuração
GitHub Actions
Secrets Necessários
Nenhum secret adicional necessário para builds básicos. O GITHUB_TOKEN é fornecido automaticamente.
Variáveis de Ambiente
PYTHON_VERSION: Versão do Python (padrão: 3.9)DOCKER_REGISTRY: Registry Docker (padrão: ghcr.io)
GitLab CI
Variables Necessárias
CI_REGISTRY: Registry Docker do GitLabCI_REGISTRY_USER: Usuário do registryCI_REGISTRY_PASSWORD: Senha do registry
Uso
GitHub Actions
O pipeline é executado automaticamente em:
- Push para main ou develop
- Pull requests para main ou develop
Para build manual:
# Via GitHub UI: Actions > Docker Build (Manual) > Run workflow
GitLab CI
O pipeline é executado automaticamente em:
- Push para qualquer branch
- Merge requests
Apps Suportados
4c-suitecsuite-executivecsuite-sales-manager(manager-api, decision-api)csuite-context
Módulos Comuns
O pipeline testa automaticamente os módulos comuns:
- common_errors
- common_health
- common_api_versioning
- common_logging
- common_cache
- common_auth
- common_validation
- common_rate_limit
- common_audit
- common_data_masking
- common_secrets
- common_db_pool
- common_testing
- core_config
Deploy
Staging
- Branch:
develop - Ambiente:
staging - URL:
https://staging.csuite.internut.com.br - Deploy: Automático após build bem-sucedido
Production
- Branch:
main - Ambiente:
production - URL:
https://csuite.internut.com.br - Deploy: Manual (aprovação necessária)
Monitoramento
GitHub Actions
- Status do pipeline visível na página do repositório
- Notificações via email/GitHub (configurável)
GitLab CI
- Status do pipeline visível na página do projeto
- Notificações via email/GitLab (configurável)
Troubleshooting
Build Falha
- Verificar logs do job que falhou
- Verificar dependências e versões
- Verificar configuração de secrets/variables
Deploy Falha
- Verificar conectividade com ambiente
- Verificar credenciais de deploy
- Verificar configuração do ambiente
Próximos Passos
- ✅ Pipeline básico criado
- ⏳ Adicionar testes E2E automatizados
- ⏳ Adicionar rollback automático
- ⏳ Adicionar notificações (Slack, email)
- ⏳ Adicionar métricas de deploy
- ⏳ Adicionar blue-green deployment
- ⏳ Adicionar canary releases