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