Pular para o conteúdo principal

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 funcionalidade
  • fix: Correção de bug
  • docs: Alterações na documentação
  • style: Formatação de código
  • refactor: Refatoração sem mudança de comportamento
  • perf: Melhorias de performance
  • test: Adição ou correção de testes
  • chore: 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:

  1. O bot analisa automaticamente as mudanças
  2. Sugere melhorias de código
  3. 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:

  1. Um step de deploy é iniciado automaticamente pela Cloudflare
  2. Uma URL de preview é gerada
  3. Você pode testar suas alterações nesta URL temporária

7. Merge​

Após aprovação e testes:

  1. Acesse o Pull Request no GitHub
  2. Clique em "Squash and merge"
  3. 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)​

  1. Render detecta mudanças na branch main
  2. Build é executado
  3. Nova versão é deployada
  4. Semantic Release gera nova release e tag

Front-ends (Cloudflare Pages)​

  1. Cloudflare Pages detecta mudanças na branch main
  2. Build é executado
  3. Nova versão é deployada globalmente
  4. 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]
  1. Criar branch a partir da main
  2. Fazer commits seguindo convenções
  3. Push e abrir Pull Request
  4. Testar usando Preview URL (front-ends)
  5. Fazer merge usando "Squash and merge"
  6. Deploy e release gerados automaticamente