Appearance
CI/CD
Objetivo
O projeto usa GitHub Actions para validar e publicar a documentacao VitePress do diretorio docs/.
Branch Da Verdade
A branch de verdade do projeto e a main.
Toda nova branch deve nascer da main atualizada.
Fluxo Oficial
- Atualizar o projeto com a
mainremota. - Criar uma nova branch partindo da
mainatualizada. - Executar a codificacao na branch nova.
- Fazer
addecommitdas alteracoes. - Publicar a branch no remoto.
- Abrir Pull Request da branch nova para a
main. - Aguardar o CI rodar no Pull Request.
- Revisar e fazer o merge na
main. - Esperar o CD rodar apos o merge em
main. - Voltar a IDE para a branch
maine atualizar o codigo local com a versao do repositorio online.
Padrao De Nome De Branch
feature/nome-da-featurehotfix/nome-do-ajustechore/nome-do-ajuste
Fluxo Completo Com Comandos
Substitua:
feature/minha-featurepelo nome real da branchfeat: descreva a featurepela mensagem real do commitfeat: titulo do PRpelo titulo real do Pull Request
1. Atualizar a main local com a main remota
bash
git switch main
git pull origin main2. Criar a nova branch a partir da main atualizada
bash
git switch -c feature/minha-feature3. Codificar na nova branch
Fazer normalmente as alteracoes necessarias no codigo.
4. Conferir o que mudou
bash
git status5. Adicionar os arquivos alterados
Opcao recomendada:
bash
git add <arquivos-alterados>Se quiser adicionar tudo:
bash
git add .6. Criar o commit
bash
git commit -m "feat: descreva a feature"7. Publicar a branch no remoto
bash
git push -u origin feature/minha-feature8. Abrir Pull Request da branch nova para a main
Opcao padrao do time:
- abrir no GitHub o PR
feature/minha-feature -> main
Opcao por linha de comando, se gh estiver instalado e autenticado:
bash
gh pr create --base main --head feature/minha-feature --title "feat: titulo do PR" --body "Resumo da feature"Quando O CI Roda
O CI da documentacao roda automaticamente quando o Pull Request para main e:
- aberto
- atualizado com novos commits
- reaberto
O CI valida:
npm cinpm run docs:build
Merge Na main
Depois da aprovacao do Pull Request:
Opcao padrao do time:
- aprovar e fazer merge do PR no GitHub
Opcao por linha de comando, se gh estiver instalado e autenticado:
bash
gh pr merge --merge --delete-branchQuando O CD Roda
Depois do merge em main, o CD roda automaticamente.
O deploy publica a documentacao no GitHub Pages.
Atualizar O Codigo Local Apos O Merge Em main
Assim que o Pull Request for merged em main, execute:
bash
git switch main
git pull origin main
git fetch --prune originSe a branch local da feature ainda existir e voce quiser remove-la:
bash
git branch -d feature/minha-featureSe a branch remota nao tiver sido apagada no merge e voce quiser remove-la:
bash
git push origin --delete feature/minha-featureResultado Esperado Ao Final
- a sua IDE termina na branch
main - o codigo local fica igual ao da
mainremota - o CI foi executado no Pull Request
- o CD foi executado depois do merge em
main - a proxima feature deve nascer novamente da
main
Resumo Rapido De Comandos
Inicio da feature
bash
git switch main
git pull origin main
git switch -c feature/minha-feature
git status
git add <arquivos-alterados>
git commit -m "feat: descreva a feature"
git push -u origin feature/minha-featureDepois do merge em main
bash
git switch main
git pull origin main
git fetch --prune origin
git branch -d feature/minha-featureRegras Importantes
- nunca criar feature a partir de outra feature
- nunca criar feature a partir de branch desatualizada
- nunca abrir Pull Request da feature para outra branch que nao seja
main - nunca deixar a IDE parada na branch de feature depois do merge
- sempre atualizar a
mainlocal depois do merge emmain
Requisitos No GitHub
Para o fluxo ficar realmente protegido no repositorio, mantenha estas configuracoes no GitHub:
- GitHub Pages com source em
GitHub Actions - branch protection em
main - bloqueio de push direto em
main - exigencia de Pull Request antes do merge em
main - exigencia do workflow de CI como check obrigatorio