🚀 Capítulo 13: Integração Contínua (CI) (Tema: Fábrica de Chocolate)

NOTE

Este capítulo utiliza a temática de Fábrica de Chocolate para explicar a Integração Contínua. Use a esteira automatizada para testar cada doce que sai da linha de produção e garanta que nenhum chocolate estragado chegue ao cliente!


1. 🎯 Objetivo da Aula

Compreender o conceito de CI (Continuous Integration - Integração Contínua), entendendo como a automação de compilação e testes ajuda equipes grandes a trabalharem juntas sem quebrar o sistema.

2. 🏢 O Cenário Prático (Seu Desafio)

Na Fantástica Fábrica de Chocolate de Willy Wonka, a produção não para. Milhares de doces são feitos a cada minuto. Para garantir que nenhum chocolate saia com gosto ruim ou tamanho errado, Wonka não usa provadores humanos (eles ficariam cheios e cansados!).

  • Ele usa uma esteira automatizada cheia de sensores.
  • Sempre que um doce é feito, ele passa pela esteira.
  • Os sensores medem o açúcar, o peso e a cor. Se o doce passar no teste, ele vai para a caixa. Se falhar, um braço mecânico joga ele no lixo na hora!

Na Engenharia de Software, quando vários programadores estão trabalhando no mesmo projeto, juntar o código de todo mundo pode ser um caos. Um programador pode quebrar o código do outro sem querer! A Integração Contínua (CI) é a esteira do Willy Wonka! Sempre que você envia o seu código para o servidor (Git), um computador automático “pega” o seu código e roda todos os testes. Seu desafio é não deixar a esteira parar!


🧠 Fundamentos: A Teoria Traduzida

🔄 O Problema da Integração:

Antigamente, os programadores trabalhavam isolados por meses e só tentavam juntar os códigos no final do projeto. Isso gerava o “Inferno da Integração”, onde nada funcionava e passavam-se semanas resolvendo conflitos.

🤖 A Solução: Integração Contínua (CI):

A regra da CI é: integre o seu código várias vezes ao dia!

  1. Você faz uma pequena alteração no código e envia para o servidor (GitHub, GitLab, etc.).
  2. O Servidor de CI (Ex: GitHub Actions) percebe a mudança e entra em ação sozinho.
  3. Ele baixa o código, tenta compilar (Build) e roda todos os testes automáticos que a equipe criou.
  4. Se passar: Ele avisa que o código está seguro e pode ser misturado com o projeto principal.
  5. Se falhar: Ele avisa a equipe imediatamente: “O João quebrou o teste da tela de login!“. O João deve parar o que está fazendo e consertar o erro na hora!

4. 📖 Exemplo Guiado: O Arquivo de Configuração

Para a esteira funcionar, nós criamos um arquivo de texto (geralmente no formato YAML) que diz ao servidor o que fazer. O roteiro é sempre o mesmo:

  1. “Computador da CI, instale o compilador de C++.”
  2. “Agora, compile o arquivo main.cpp.”
  3. “Por fim, execute o arquivo testes.exe.” Se em qualquer um desses passos der erro, a esteira para e avisa o time!

5. 🛠️ Prática Obrigatória 1: O Chocolate Estragado

Imagine que você alterou o código do sistema de pagamento e enviou para o GitHub. A esteira de CI rodou e acusou que o teste de cálculo de frete falhou (ficou vermelho).

  1. Você deve continuar trabalhando na sua próxima tarefa ou deve parar e consertar o teste de frete imediatamente? Por quê?

6. 🛠️ Prática Obrigatória 2: Ferramentas da Fábrica

Para implementar a Integração Contínua, as empresas usam softwares especializados que servem como a “esteira”.

  1. Cite o nome de pelo menos duas ferramentas famosas de CI usadas no mercado de trabalho atual.

7. 📤 Instruções de Entrega (GitHub Desktop + Microsoft Teams)

  1. Faça o Commit: No GitHub Desktop, digite a mensagem (ex: Finaliza Capítulo 13 EngSoftware) e clique em Commit to main.
  2. Envie para a Nuvem (Push): Clique em Push origin.

8. 📂 Estrutura de Pastas

extra_engenharia_de_software/
├── .github/
│   └── workflows/
│       └── esteira_ci.yml
└── capitulos/
    └── capitulo_13_ci.md

💡 Checkpoint de Lógica

A Integração Contínua exige disciplina. Não adianta ter uma esteira de CI perfeita se a equipe ignorar os avisos de erro e continuar enviando código estragado para o sistema!

10. 🔥 Desafio de Fixação

Pesquise o que significa o termo Build no contexto de desenvolvimento de software.

🔑 Gabarito de Código/Fórmulas

Gabarito da Prática 1:

  1. Você deve parar tudo e consertar o erro imediatamente. A regra de ouro da CI é: “Nunca deixe a esteira quebrada”. Se você continuar trabalhando, outros programadores vão baixar o seu código estragado e o caos vai se espalhar pela equipe! Gabarito da Prática 2:
  2. GitHub Actions, Jenkins, GitLab CI, CircleCI ou Travis CI.

Capitulo Anterior | Proximo Capitulo