guisix18 / financial-monitor-back-end

https://financial-monitor-back-end.vercel.app
0 stars 0 forks source link

Criar, configurar e(futuramente) melhorar Pipeline de CI/CD no GitHub Actions #19

Open guisix18 opened 2 months ago

guisix18 commented 2 months ago

Descrição:

Atualmente, nossa aplicação não possui um pipeline de CI/CD configurado no GitHub Actions. A implementação de uma estratégia de CI/CD é crucial para automatizar a construção, testes e deploy da aplicação, garantindo uma integração contínua e entrega contínua mais eficiente.

Tarefas:

Configuração Inicial do GitHub Actions:

Criar Arquivo de Workflow: Criar um arquivo de workflow básico no diretório .github/workflows para iniciar o pipeline. Definir Gatilhadores: Configurar gatilhos para iniciar o pipeline em eventos como push, pull_request, e release. Configuração da Construção e Testes:

Instalação de Dependências: Adicionar etapas para instalar dependências da aplicação. Execução de Testes: Adicionar etapas para executar testes unitários e de integração usando ferramentas como Jest e Supertest. Cobertura de Código: Adicionar etapas para gerar relatórios de cobertura de código e garantir que os testes estão cobrindo uma porcentagem aceitável do código. Configuração de Build e Deploy:

Build da Aplicação: Adicionar etapas para compilar ou construir a aplicação, se necessário. Deploy Automatizado: Configurar o deploy automatizado para ambientes de staging e produção. Isso pode incluir a implantação em serviços como AWS, Heroku, ou qualquer outro serviço de hospedagem(Como tô fazendo sozinho, manter no Render por enquanto). Segurança e Credenciais: Configurar secrets e variáveis de ambiente no GitHub para gerenciar credenciais de forma segura durante o deploy. Testes e Validação:

Validação de Pipeline: Testar e validar o pipeline de CI/CD para garantir que todas as etapas estão funcionando conforme esperado. Ajustes e Melhorias: Fazer ajustes com base em feedback e problemas encontrados durante a execução inicial do pipeline. Documentação e Melhorias Contínuas:

Documentar Configuração: Documentar a configuração do pipeline de CI/CD, incluindo como adicionar novas etapas e como gerenciar secrets e variáveis de ambiente. Melhorias Contínuas: Planejar e implementar melhorias contínuas no pipeline, como otimização de tempo de execução e adição de novos testes e etapas conforme necessário. Critérios de Aceitação:

Pipeline de CI/CD configurado e funcionando corretamente no GitHub Actions. Etapas de construção e testes automatizadas e executadas com sucesso. Deploy automatizado configurado e validado. Documentação clara sobre a configuração e uso do pipeline de CI/CD. Pipeline é executado automaticamente em eventos de commit e pull request. Impacto Esperado:

Automatização do processo de integração e entrega contínua. Redução de erros manuais e melhoria na consistência do deploy. Maior eficiência no desenvolvimento e manutenção da aplicação.

guisix18 commented 2 months ago

Isso aqui faz mais sentido quando existir ao menos uma cobertura de testes.

guisix18 commented 2 months ago

Adicionei(nem perto de 100%) os primeiros testes unitários. A ideia é conseguir fazer a cobertura de ponta a ponta desse. Com isso já dei início ao processo de CI, com muita informação "perigosa" a vista.

PS: Docker tá rodando na máquina do CI, vou criar uma secret para isso.