Documentação técnica da linguagem Go desenvolvida com Zensical, publicada automaticamente via GitHub Pages através de um pipeline de CI/CD com GitHub Actions.
| Nome | GitHub | RA |
|---|---|---|
| Ana Luiza Corrêa de Oliveira | @analu007 | 2500933 |
| Beatriz Lino dos Passos | @BiiaLino | 2501401 |
| Rafael Antonio Tomé Ferreira | @rafaeltome-tech | 2501412 |
| Ruth da Silva Gama | @gamaruthdev | 2403586 |
Este projeto tem como objetivo apresentar os principais conceitos da linguagem Go de forma organizada e acessível, abordando os seguintes tópicos:
- Introdução e Instalação
- Sintaxe Básica e Variáveis
- Estruturas de Controle (
if,for,switch) - Arrays, Slices e Maps
- Structs e Métodos
- Tratamento de Erros (Error Handling)
- Concorrência I: Goroutines
- Concorrência II: Channels
- Gerenciamento de Pacotes (Go Modules)
- Testes Automatizados em Go
- Go
- Markdown
- Zensical
- GitHub Actions
- GitHub Pages
A equipe adotou o modelo de Feature Branches com Pull Requests, seguindo as boas práticas de desenvolvimento colaborativo.
A branch main foi configurada com regras de proteção (Branch Protection Rules) pela Ana Luiza, garantindo que:
- Commits diretos na
mainsão bloqueados - Toda alteração deve ser feita via Pull Request
- É obrigatória a aprovação de pelo menos um outro membro antes do merge
Para cada nova página de documentação, o integrante responsável criou uma branch separada seguindo o padrão:
feat/<nome-do-topico>feat/introducao-instalacao
feat/arrays-slices-maps
feat/concorrencia-goroutinesAo finalizar o conteúdo, o integrante abriu um Pull Request para a main com um título descritivo seguindo o padrão:
docs: <nome do tópico>As revisões foram feitas por todos os integrantes da equipe — quem estivesse disponível primeiro realizava a revisão, deixava comentários quando necessário e aprovava o PR.
Após a aprovação, o merge era realizado na main.
O workflow foi desenvolvido pelo Rafael, localizado em:
.github/workflows/O pipeline é executado nos seguintes eventos:
pull_requestpara a branchmain— valida o build antes do mergepushpara a branchmain— executa após o merge do PRschedulecom cron0 0 * * 0— executa automaticamente toda semana
O workflow é dividido em dois jobs com responsabilidades separadas.
- Utiliza Matrix Strategy com Python 3.10 e 3.11 para garantir compatibilidade
- Implementa cache das dependências Python via
actions/cache - Instala o Zensical e executa o build da documentação
- Faz upload dos arquivos HTML gerados como artefato
- Aguarda a conclusão do
build_sitevia diretivaneeds: - Faz download do artefato gerado pelo job anterior
- Publica a documentação no GitHub Pages
- Só é executado em
pushnamainou no eventoschedule - Nunca é executado durante Pull Requests, garantido pela diretiva
if:
Pull Request aberto
↓
build_site roda (matrix: Python 3.10 e 3.11)
↓
Build OK? → Reviewer aprova → Merge na main
↓
build_site roda novamente
↓
deploy_site baixa o artefato e publica no GitHub Pages
Acesse a documentação em:
https://impacta-gb.github.io/projeto-ctt-ap2-sem_commit/