ULC Lab · implementação reproduzível
Laboratório: Repositório Git colaborativo com integração contínua no GitHub Actions
Você terá um repositório Git local e remoto no GitHub, com fluxo de branches, pull request e pipeline CI usando GitHub Actions. Tempo estimado: 120 minutos.

- Duração estimada
- 120 min
- Passos
- 13
- Validações
- 4
- Versões da documentação consultada
- Git a versão estável atual · GitHub n/a · GitHub Actions n/a
Este laboratório ensina como criar um repositório Git local, publicar no GitHub, trabalhar com branches, simular colaboração via pull request e configurar integração contínua com GitHub Actions. O objetivo é dominar o ciclo de versionamento, colaboração e automação de testes em projetos de software open source.
Topologia
Uma máquina local (192.168.56.10) com Git instalado conecta-se à internet para acessar o GitHub. O repositório local é sincronizado com um repositório remoto no GitHub. O pipeline CI roda no ambiente do GitHub Actions, disparado por push e pull request.
┌──────────────┐ HTTPS ┌──────────────┐
│ Máquina │ <────────────> │ GitHub │
│ Local │ │ (Remoto) │
│192.168.56.10 │ │ │
└──────┬───────┘ └──────┬───────┘
│ │
│ Push/Pull │
│ │
▼ ▼
Repositório Local GitHub Actions
Equipamentos e software
| Item | Requisito, licença ou versão |
|---|---|
| PC ou VM | 1 vCPU, 1GB RAM, 1 porta de rede, acesso à internet |
| Git | GPLv2 · a versão estável atual |
| GitHub | MIT (site, serviço público) · n/a |
| GitHub Actions | MIT · n/a |
Roteiro
- Instale o Git
Você precisa do Git para controle de versão local. Instale via gerenciador de pacotes.
sudo apt update && sudo apt install gitO que você deve ver: Git instalado. 'git --version' retorna a versão.
- Configure nome e email globais
O Git identifica cada commit pelo nome e email. Configure antes de iniciar.
git config --global user.name "Seu Nome" git config --global user.email "seu@email.com"O que você deve ver: Configuração salva. 'git config --global --list' mostra os valores.
- Crie um diretório de projeto e inicialize o repositório
Organize seu código em um diretório dedicado e inicialize o Git.
mkdir projeto-demo && cd projeto-demo git initO que você deve ver: Diretório '.git' criado. 'git status' mostra 'No commits yet'.
- Crie um arquivo README.md e faça o primeiro commit
README.md é padrão em repositórios. Adicione e faça commit.
echo "# Projeto Demo" > README.md git add README.md git commit -m "Commit inicial: adiciona README"O que você deve ver: Commit criado. 'git log' mostra o commit.
- Crie um repositório remoto no GitHub
No navegador, acesse github.com e crie um novo repositório vazio (sem README).
O que você deve ver: Repositório remoto criado. URL HTTPS disponível.
- Adicione o remoto e faça push
Conecte seu repositório local ao remoto e envie o commit.
git remote add origin https://github.com/<seu-usuario>/<repo>.git git branch -M main git push -u origin mainO que você deve ver: 'main' publicado no GitHub. Página do repositório mostra README.
- Crie uma branch de funcionalidade
Branches isolam mudanças. Crie uma branch para simular desenvolvimento paralelo.
git checkout -b nova-funcionalidadeO que você deve ver: Branch 'nova-funcionalidade' ativa. 'git branch' mostra as branches.
- Adicione um script e faça commit na branch
Crie um arquivo de exemplo (ex: script.sh) e faça commit na branch.
echo -e '#!/bin/bash\necho "Hello, Upnetix!"' > script.sh chmod +x script.sh git add script.sh git commit -m "Adiciona script de exemplo"O que você deve ver: Commit criado na branch. 'git log' mostra o histórico.
- Publique a branch no GitHub
Envie a branch para o repositório remoto.
git push -u origin nova-funcionalidadeO que você deve ver: Branch aparece no GitHub. Pull request sugerido.
- Abra um Pull Request no GitHub
No site do GitHub, crie um Pull Request da branch 'nova-funcionalidade' para 'main'.
O que você deve ver: Pull request criado. Interface mostra comparação entre branches.
- Configure integração contínua com GitHub Actions
Automatize testes criando um workflow. Crie '.github/workflows/ci.yml' com um job de execução do script.
mkdir -p .github/workflows echo -e 'name: CI\non: [push, pull_request]\njobs:\n build:\n runs-on: ubuntu-latest\n steps:\n - uses: actions/checkout@v3\n - name: Executa script\n run: ./script.sh' > .github/workflows/ci.yml git add .github/workflows/ci.yml git commit -m "Adiciona workflow CI" git pushO que você deve ver: Arquivo criado e enviado. GitHub mostra aba 'Actions' com pipeline.
- Valide o pipeline CI
No GitHub, veja o status do workflow disparado pelo push. O job deve rodar e exibir 'Hello, Upnetix!'.
O que você deve ver: Workflow executado com sucesso. Logs mostram saída do script.
- Faça merge do Pull Request
No GitHub, faça merge do Pull Request após o CI passar.
O que você deve ver: Branch 'main' atualizada. Histórico mostra merge.
Como saber que funcionou
| Teste | Comando | Critério |
|---|---|---|
| Verificar histórico de commits local | git log --oneline --graph --all | Commits de main e nova-funcionalidade aparecem, mostrando merge. |
| Verificar branches remotas | git branch -r | origin/main e origin/nova-funcionalidade listadas. |
| Verificar execução do workflow CI | Status verde na aba Actions do GitHub, logs mostram 'Hello, Upnetix!' | |
| Testar execução do script localmente | ./script.sh | Saída: Hello, Upnetix! |
Troubleshooting
| Sintoma | Causa provável | Correção |
|---|---|---|
| Erro de autenticação ao fazer push | Token de acesso ou senha incorretos | Gere um token pessoal no GitHub e use como senha |
| Workflow CI falha por permissão negada | Permissão de execução ausente no script | Adicione 'chmod +x script.sh' antes do commit |
| Branch não aparece no GitHub | Push não realizado para o remoto | Use 'git push -u origin <branch>' |
| Pull Request não pode ser mesclado | Conflito entre branches | Faça rebase ou merge local, resolva conflitos e faça push |
Segurança e hardening
- Nunca publique tokens ou senhas em arquivos versionados
- Use tokens de acesso pessoal com permissões mínimas necessárias
- Revogue tokens não utilizados no GitHub
- Evite executar scripts de terceiros sem auditoria
Checklist final
Referências
- Documentação Oficial do Git · Projeto Git (git-scm.com)
- Documentação do GitHub · GitHub (docs.github.com)
- GitHub Actions Documentation · GitHub (docs.github.com)
- Publicado
- 09/09/2026
- Última revisão
- 09/09/2026
- Versão do conteúdo
- 1.0
- Referências
- 3 oficiais
- Revisão técnica
- redação e revisão por IA, URLs conferidas na publicação
- Status
- Atual
