- Mantenha seu repositório público
- Prazo limite: Final da ultima aula, às 12:00 PM
- Git Bash
- Gitk (ou equivalente)
- Conta no GitHub
Este trabalho deve ser realizado em dupla, mas somente um repositório deverá ser enviado como entrega oficial.
-
A dupla deve escolher apenas um repositório forkado para executar todas as etapas do trabalho.
- Não envie dois repositórios.
- Ambos os alunos devem trabalhar no mesmo fork.
-
No arquivo
README.mddo projeto, devem constar obrigatoriamente:- Nome completo dos dois alunos
- Usuários GitHub
- Numeros das matrículas
- Seguir o exemplo:
Equipe:
Joao Alves, matricula 123456
Jose Silva, matricula 456789
-
Apenas um integrante fará a Pull Request final para o repositório original, mas:
- O nome dos dois alunos deve estar listado na descrição.
- Ambos serão avaliados com base no mesmo repositório.
-
Toda a organização (pastas, commits, README) deve representar o trabalho da dupla.
Durante a realização deste trabalho, somente as fontes abaixo estão autorizadas:
-
Documentação oficial do Git
https://git-scm.com/doc -
E-book Pro Git (versão oficial disponível gratuitamente)
https://git-scm.com/book -
Material didático disponibilizado no sistema online da disciplina
(Material do AVA)
Não é permitido utilizar:
- Ferramentas baseadas em IA/LLMs (como ChatGPT, Copilot, Gemini, Claude, etc.)
- Pesquisas gerais na internet
- Tutoriais externos, blogs, vídeos, artigos ou documentação não listada acima
Crie uma conta no GitHub, caso ainda não possua.
Realize um fork do repositório: https://github.com/rodrigo-galba-unifor/gestao-configuracao-trabalho-final
Crie uma Issue no repositório principal com as seguintes informações:
- Título:
Trabalho do aluno/a <seu-nome> - Descrição: Trabalho final de gestão de configuração. Número da sua matrícula.
- Link do GitHub:
https://github.com/<seu-usuario>
Clone localmente o repositório que você forkou e crie um branch separado a partir do main com o nome dev. E mude para o branch dev.
Crie uma pasta com o seu nome de usuário no GitHub. Todas as tarefas abaixo devem ocorrer somente dentro desse diretório, exceto quando indicado o contrário.
Adicione um arquivo README.md dentro dessa pasta e realize commit do arquivo.
Crie um arquivo .env com cinco variáveis de ambiente fictícias (chave e valor). Além disso, crie um arquivo .env-template contendo as mesmas chaves, mas com os valores em branco ou genéricos. O arquivo .env-template deve ser versionado. Ignore o arquivo .env.
Exemplo:
API_URL=https://exemplo.com
PORT=3000
DEBUG=true
USER=admin
TOKEN=123456
Crie um arquivo credentials e garanta que ele seja ignorado pelo Git. Realize commit das alterações se necessário.
No README.md, descreva o uso das variáveis de ambiente criadas. Realize commit das alterações.
Adicione uma seção ao README.md informando a última alteração do log feita. Realize commit das alterações.
Abra o gitk e capture um screenshot com todo o histórico de commits. Se houver muitos commits, tire mais de um screenshot. Faça commit da(s) imagem(ns).
No arquivo alunos.md (na raiz do projeto), adicione uma linha com o seu usuário GitHub/Nome do Aluno. Realize commit das alterações.
Em seguida, delete o arquivo alunos.md do repositório e realize novo commit com essa remoção.
Publique o branch dev no GitHub.
Crie uma tag semântica no branch dev (ex: v1.0.0-dev) e submeta para o GitHub.
A partir do branch dev, crie o branch stage.
Apague completamente o último commit no branch stage. Realize commit das alterações se necessário.
Publique o branch stage.
Crie uma tag semântica no branch stage (ex: v1.0.0-stage) e envie para o GitHub.
Crie um branch prod baseado em main, ignorando quaisquer alterações pendentes.
Realize um merge do tipo squash com todos os commits feitos no stage na data atual. Faça commit do merge squash em prod. Garanta que o branch prod possui somente o commit de merge-squash
Publique o branch prod no GitHub.
Crie uma tag semântica no prod (ex: v1.0.0) e submeta para o GitHub.
Crie uma Pull Request no seu repositório: do branch prod para o branch main. Na descrição, resuma as alterações feitas.
Crie uma tag semântica no branch main no seu repositório (ex: v1.0.0-release) e submeta para o GitHub.
Crie uma release com a tag criada no seu repositório. Resuma as principais mudanças incluídas.
Crie uma Pull Request do seu repositório para o repositório principal original. Na descrição, informe:
- Link para cada branch criado (
dev,prod,stage) - Link para cada tag criada
- Link da release
Crie um branch hotfix baseado no branch prod.
Insira uma pequena correção no repositório.
Exemplo sugerido: criar um novo arquivo hotfix.md contendo os dados do último commit realizado no prod.
Crie uma tag semântica para o hotfix seguindo padrão de patch:
v1.0.1-hotfix
Realize o merge do branch hotfix para os branches:
prodmain
Envie a tag v1.0.1-hotfix para o GitHub.
Gere uma nova release no GitHub utilizando a tag do hotfix e inclua uma descrição mencionando a correção aplicada.
Delete o branch stage do repositório local.
No branch main, liste todos os branches existentes no repositório local e registre essa lista em um arquivo chamado branches.md.
Realize commit do arquivo.
Recupere o branch stage que foi deletado anteriormente.
Após a recuperação, repita o passo 33: atualize o arquivo branches.md listando novamente todos os branches existentes e realize um novo commit.