Workflow de Desenvolvimento
Este guia documenta o processo de desenvolvimento e deploy dos projetos Treino GO.
Ferramentas de Automação
Todos os projetos utilizam as seguintes ferramentas para garantir qualidade e consistência:
- Semantic Release - Versionamento automático baseado em commits
- Husky - Git hooks para validação antes de commits
- Commitlint - Validação de mensagens de commit
Convenções de Commit
Todos os commits devem seguir o padrão Conventional Commits.
Formato
<tipo>(<escopo>): <descrição>
[corpo opcional]
[rodapé opcional]
Tipos Principais
feat:Nova funcionalidadefix:Correção de bugdocs:Alterações na documentaçãostyle:Formatação de códigorefactor:Refatoração sem mudança de comportamentoperf:Melhorias de performancetest:Adição ou correção de testeschore:Alterações em ferramentas ou configurações
Exemplos
feat: adicionar filtro de alunos no dashboard
fix: corrigir cálculo de tempo de treino
docs: atualizar README com instruções de deploy
Para mais detalhes, consulte a documentação oficial do Commitlint.
Processo de Desenvolvimento
1. Configurar Node.js
IMPORTANTE: Antes de começar a codar, execute:
nvm use
Este comando configura automaticamente a versão correta do Node.js (v24) especificada no arquivo .nvmrc do projeto.
2. Criar uma Branch
IMPORTANTE: Nunca commitar diretamente na branch main.
# Atualizar a main
git checkout main
git pull origin main
# Criar nova branch
git checkout -b feat/minha-nova-feature
3. Fazer Commits
Faça commits seguindo as convenções:
git add .
git commit -m "feat: adicionar nova funcionalidade"
O Husky validará automaticamente:
- Formato da mensagem de commit
- Testes (se aplicável)
- Linting do código
4. Push e Pull Request
# Fazer push da branch
git push origin feat/minha-nova-feature
Em seguida, abra um Pull Request no GitHub.
5. Code Review Automático
Todos os projetos utilizam GitHub Code Quality para revisão automática de código.
Quando você abre um Pull Request:
- O bot analisa automaticamente as mudanças
- Sugere melhorias de código
- Sempre que possível, avalie e aplique as sugestões
6. Preview Automático (Front-ends)
Nos projetos front-end, ao abrir o Pull Request:
- Um step de deploy é iniciado automaticamente pela Cloudflare
- Uma URL de preview é gerada
- Você pode testar suas alterações nesta URL temporária
7. Merge
Após aprovação e testes:
- Acesse o Pull Request no GitHub
- Clique em "Squash and merge"
- Confirme o merge
SEMPRE use "Squash and merge" para manter o histórico limpo.
Deploy Automático
Após o merge na main, o seguinte processo ocorre automaticamente:
Backend (Render)
- Render detecta mudanças na branch
main - Build é executado
- Nova versão é deployada
- Semantic Release gera nova release e tag
Front-ends (Cloudflare Pages)
- Cloudflare Pages detecta mudanças na branch
main - Build é executado
- Nova versão é deployada globalmente
- Semantic Release gera nova release e tag
Versionamento Automático
O Semantic Release calcula automaticamente a nova versão baseando-se nos tipos de commits:
feat:→ Incrementa versão MINOR (1.0.0 → 1.1.0)fix:→ Incrementa versão PATCH (1.0.0 → 1.0.1)BREAKING CHANGE:→ Incrementa versão MAJOR (1.0.0 → 2.0.0)
Exemplo de Fluxo
# Versão atual: 1.2.3
# Commits no PR:
# - feat: adicionar filtro de busca
# - fix: corrigir bug no login
# Após merge → Nova versão: 1.3.0
Resumo do Fluxo
graph LR
A[Criar Branch] --> B[Commits]
B --> C[Push]
C --> D[Pull Request]
D --> E[Preview URL]
E --> F[Revisão]
F --> G[Squash and Merge]
G --> H[Deploy Automático]
H --> I[Release Gerada]
- Criar branch a partir da
main - Fazer commits seguindo convenções
- Push e abrir Pull Request
- Testar usando Preview URL (front-ends)
- Fazer merge usando "Squash and merge"
- Deploy e release gerados automaticamente