Integração Contínua (CI) — Por que CI? | professorcomia.com.br

Ensino Médio Técnico · Desenvolvimento de Sistemas · Unidade 3 Componente 5 · Código SISANO2C5B2S8A1

Da oficina artesanal à linha de montagem: como a CI transformou o “Inferno da Integração” em feedback rápido e entregas confiáveis — e o que isso significa para a formação técnica dos seus alunos.

CI / CD GitHub Actions DevOps Aula 1 de CI Ensino Médio Técnico SEDUC-SP

Por que a sexta-feira ainda é o dia mais perigoso em times sem CI?

Imagine uma turma dividida em cinco grupos, cada um desenvolvendo um módulo independente de um aplicativo de gestão escolar. Três semanas e meia de trabalho isolado. Na última sexta, todos se reúnem para integrar. O sistema de login não corresponde ao esperado pelo módulo de notas. O chat não reconhece os usuários. O dashboard falha porque os outros módulos não funcionam como planejado.

Resultado: uma madrugada de estresse, conflitos de código, retrabalho e um aplicativo quase inoperante na apresentação final. Esse cenário, fictício mas absolutamente realista, encapsula o principal problema que a Integração Contínua veio resolver.

Dor concreta: sem CI, cada desenvolvedor cria sua própria versão isolada do sistema por dias ou semanas. Quando finalmente tentam integrar, surgem conflitos de interface, dependências incompatíveis e bugs impossíveis de rastrear — o que a indústria chama de Integration Hell (Inferno da Integração). O custo cresce exponencialmente com o tempo de isolamento.

O que é Integração Contínua? Definição objetiva

≡ definição — integração contínua (ci)

Prática de desenvolvimento em que cada pequena alteração de código é integrada ao repositório central com alta frequência, acionando automaticamente um ciclo de build e testes para detectar problemas em minutos.

O conceito foi descrito por Grady Booch e popularizado no fim dos anos 1990 pelo Extreme Programming (XP), metodologia ágil que prioriza integração frequente, testes automatizados e entrega confiável. A ideia central é simples: integrar cedo, integrar sempre, testar automaticamente — e receber feedback imediato sobre cada mudança.

Da oficina artesanal à linha de montagem: o contexto histórico

Antes da CI, equipes de software funcionavam como oficinas artesanais. Cada desenvolvedor trabalhava meses em sua própria “bancada”, construindo funcionalidades de forma isolada. No dia da integração, tudo era reunido manualmente — e os conflitos eram inevitáveis, caros e humilhantes.

A mudança de paradigma veio com uma analogia precisa: a linha de montagem de Henry Ford. Em vez de um artesão construir o carro inteiro, cada trabalhador é responsável por uma peça específica. A esteira avança, robôs verificam cada componente instalado, e qualquer defeito para a linha imediatamente para correção.

← deslize para ver a tabela completa →

DimensãoOficina Artesanal (sem CI)Linha de Montagem (com CI)
Frequência de integraçãoUma vez ao final do projetoVárias vezes ao dia
Detecção de bugsTardia, cara e difícil de rastrearImediata, antes de avançar
Custo de correçãoAlto — requer refatoração extensaBaixo — problema ainda é pequeno
Feedback ao desenvolvedorDias ou semanas após o commitMinutos após o commit
Estado do softwareInstável por longos períodosSempre em estado íntegro e entregável
Ferramentas representativasGitHub Actions, GitLab CI, Jenkins

Como funciona o ciclo commit-build-test?

O coração da Integração Contínua é o ciclo de três estações da linha de montagem. Cada commit dispara automaticamente as demais etapas, sem intervenção manual.

{ } método — ciclo commit · build · test

  1. Estação 1 — Commit (instalação da peça): O desenvolvedor salva uma alteração pequena e logicamente coesa no repositório central (como o GitHub). Esse ato é o gatilho de todo o processo. Cada commit deve representar uma unidade de trabalho completa — não o sistema todo, mas uma porta, um para-lama, um farol.
  2. Estação 2 — Build (montagem e acoplamento): O servidor de CI puxa o código-fonte completo, compila, baixa dependências e empacota tudo em uma versão executável. Se houver erro de sintaxe, dependência ausente ou conflito de versão, o build falha e a “luz vermelha” acende imediatamente.
  3. Estação 3 — Test (controle de qualidade automatizado): Uma bateria de testes automatizados — escritos pelos próprios desenvolvedores — verifica se as funcionalidades continuam operando como esperado. Testes de unidade testam componentes isolados; testes de integração testam a interação entre módulos.
  4. Resultado — Feedback imediato: Em minutos, o desenvolvedor recebe luz verde (integração bem-sucedida, código saudável) ou luz vermelha (falha detectada, correção necessária agora). Problemas são pequenos, fáceis de localizar e baratos de corrigir.

Templates de código: da pseudolinguagem ao pipeline real

Pseudocódigo — lógica do ciclo CI (estilo VisualG)

ciclo_ci.alg — pseudocódigo ▶ visualg
ALGORITMO CicloContinuo
VAR
  commit  : CARACTERE
  build   : LOGICO
  testes  : LOGICO

INICIO
  ESCREVA("[ CI ] Pipeline iniciado — aguardando commit...")
  commit <- LER_REPOSITORIO()

  SE commit <> "" ENTAO
    ESCREVA("[ BUILD ] Compilando e verificando dependencias...")
    build <- EXECUTAR_BUILD(commit)

    SE build = FALSO ENTAO
      ESCREVA("[X] BUILD FALHOU — luz vermelha. Corrija antes de continuar.")
    SENAO
      ESCREVA("[ TEST ] Executando bateria de testes automatizados...")
      testes <- EXECUTAR_TESTES()

      SE testes = FALSO ENTAO
        ESCREVA("[X] TESTES FALHARAM — luz vermelha. Investigue a falha.")
      SENAO
        ESCREVA("[OK] INTEGRACAO BEM-SUCEDIDA — luz verde. Codigo saudavel.")
      FIMSE
    FIMSE
  FIMSE
FIMALGORITMO

Pipeline real — GitHub Actions (YAML)

.github/workflows/ci.yml ▶ github actions
# Pipeline de Integracao Continua — GitHub Actions
# Aciona a cada push em main e a cada pull_request

name: Pipeline CI

on:
  push:
    branches: [ main, develop ]
  pull_request:
    branches: [ main ]

jobs:
  build-e-test:
    runs-on: ubuntu-latest     # runner: servidor limpo a cada execucao

    steps:

      # Estacao 1 — COMMIT: baixar o codigo
      - name: Checkout do repositorio
        uses: actions/checkout@v4

      # Estacao 2 — BUILD: configurar ambiente e instalar dependencias
      - name: Configurar Python 3.11
        uses: actions/setup-python@v5
        with:
          python-version: '3.11'

      - name: Instalar dependencias
        run: pip install -r requirements.txt

      # Estacao 3 — TEST: executar bateria de testes automatizados
      - name: Executar testes com pytest
        run: pytest tests/ -v
        # Luz verde: todos os testes passaram
        # Luz vermelha: algum teste falhou — pipeline interrompido
Ponto de atenção didático: o arquivo ci.yml vive dentro do próprio repositório, na pasta .github/workflows/. Isso significa que o pipeline é versionado junto com o código — qualquer alteração nele também passa pelo ciclo commit-build-test. O próprio guardião do processo é controlado pelo processo.

Caso real: a startup FluxoCod e o risco da sexta-feira

[ ] caso — contexto profissional real

Você é um desenvolvedor júnior na startup FluxoCod, que nunca implementou CI. Cada developer trabalha isolado por semanas e a integração é feita manualmente ao final dos projetos. São 16h30 de uma sexta-feira. Você recebe uma mensagem urgente: a equipe precisa integrar duas semanas de trabalho isolado até segunda de manhã.

Como desenvolvedor que compreende os princípios da CI, você reconhece o risco imediatamente: a empresa está prestes a repetir o mesmo padrão do Inferno da Integração. A resposta profissional exige reconhecer a urgência, explicar o risco usando a analogia da linha de montagem e propor uma estratégia baseada em CI que minimize o impacto.

Esse tipo de situação ainda é rotina em startups que priorizaram velocidade de desenvolvimento e adiaram a implantação de processos sólidos. A CI não é luxo de time grande — é o que separa entrega confiável de retrabalho noturno.

Expansão estratégica: do conceito ao produto educacional

→ frentes estratégicas — professor poed

Curso técnico

CI/CD é eixo obrigatório de qualquer currículo de Desenvolvimento de Sistemas alinhado ao mercado. A Aula 1 pode ser o ponto de entrada para um laboratório completo de pipeline com GitHub Actions, integrado ao conteúdo de Git já ministrado.

Blog e autoridade digital

Artigos sobre CI/CD no contexto do ensino médio técnico são escassos em português. A combinação de analogia pedagógica + código funcional + cenário escolar cria conteúdo de alta diferenciação para posicionamento no tema IA e educação.

Cultura maker / laboratório digital

O ciclo commit-build-test pode ser ensinado via projetos reais no laboratório: o próprio repositório dos projetos dos alunos passa a ter pipeline de CI configurado. Maker não é só hardware — é também processo.

Formação docente

A analogia da linha de montagem aplicada ao desenvolvimento de software é ferramenta de formação para professores de outras disciplinas que trabalham com projetos em grupo. CI é, em essência, uma solução para o problema pedagógico do trabalho colaborativo mal orquestrado.

Síntese conceitual: a Integração Contínua transforma o momento de integração — historicamente o mais perigoso do desenvolvimento de software — em um evento contínuo, automatizado e controlado. Seu benefício fundamental não é tecnológico, mas epistêmico: feedback rápido sobre cada pequena decisão de código.

Perguntas frequentes sobre Integração Contínua (CI)

O que é Integração Contínua (CI) em desenvolvimento de software?

É a prática de integrar pequenas alterações de código ao repositório central com alta frequência — várias vezes ao dia — acionando automaticamente um ciclo de build e testes para detectar problemas imediatamente, antes que se acumulem.

Qual a diferença entre CI e CD no desenvolvimento de sistemas?

CI (Integração Contínua) cuida da integração, build e testes automáticos a cada commit. CD (Entrega ou Deploy Contínuo) estende o pipeline para enviar o software validado a ambientes de staging ou produção automaticamente. São práticas complementares da filosofia DevOps.

Por que times sem CI sofrem no momento da integração?

Quando developers trabalham isolados por semanas, cada um cria interfaces, estruturas de dados e contratos distintos. Na hora de integrar, surgem incompatibilidades em cascata — o fenômeno chamado Integration Hell. O custo de correção cresce exponencialmente com o tempo de isolamento.

O que acontece no ciclo commit-build-test da Integração Contínua?

Cada commit dispara um build automático (compilação e verificação de dependências) seguido de testes automatizados. O resultado é feedback em minutos: luz verde indica integração bem-sucedida; luz vermelha indica falha a corrigir imediatamente, enquanto o problema ainda é pequeno.

Quais ferramentas de CI são usadas na indústria atualmente?

As principais são GitHub Actions, GitLab CI, Jenkins, Travis CI e CircleCI. GitHub Actions é a mais indicada para iniciantes por estar integrada ao GitHub, onde a maioria dos projetos escolares já é versionada, e por usar arquivos YAML simples que os alunos podem versionar junto com o próprio código.

Explore mais conteúdos de Desenvolvimento de Sistemas

Acesse o laboratório de educação digital, materiais de aulas, projetos maker e artigos sobre IA aplicada à educação pública.

→ professorcomia.com.br

A Integração Contínua não é apenas uma ferramenta de DevOps. É uma mudança de mentalidade sobre o que significa colaborar em código. Quando os alunos aprendem que cada commit dispara um ciclo automático de verificação, eles começam a encarar o desenvolvimento como um processo contínuo de feedback — não como uma entrega pontual de última hora. Essa mudança de perspectiva é, provavelmente, mais valiosa do que qualquer sintaxe específica de pipeline que possam aprender nesta aula.

professorcomia.com.br · diariodeumpoed.com.br

código: SISANO2C5B2S8A1 · aula 1 de CI · unidade 3 componente 5

material produzido com base nos slides SEDUC-SP · integração contínua e entrega contínua

>_

Slides de Aula — Integração Contínua (CI)

SISANO2C5B2S8A1 · Aula 1 · Unidade 3 Componente 5 · Ensino Médio Técnico

>_ abertura # 01

◉ REGISTRO DE FREQUÊNCIA — AVA / CHAMADA ORAL

>_ Por que Integração Contínua?

AULA 1 · UNIDADE 3 COMPONENTE 5 · SISANO2C5B2S8A1

Integração Contínua (CI) — Conceitos e configuração inicial
Integração contínua e entrega contínua · SEDUC-SP

“Você já trabalhou em um projeto em grupo onde, na hora de juntar tudo, nada funcionava? O que aconteceu — e o que poderia ter sido feito diferente?”
[ ] objetivos # 02

[ ] O que vamos aprender hoje

  • Conceitual: Compreender os benefícios do feedback rápido e da detecção precoce de bugs com CI.
  • Procedimental: Conhecer a estrutura de um pipeline básico de CI no GitHub Actions com execução de testes automatizados.
  • Atitudinal: Demonstrar entusiasmo e proatividade ao integrar práticas de CI, contagiando a equipe com energia positiva em entregas frequentes.

{ recursos: projetor · laboratório de informática · acesso à internet · AVA }

! problema_gerador # 03

! A orquestra invisível ao seu redor

Projeto final: aplicativo de gestão escolar em 4 semanas, 5 grupos independentes. Três semanas e meia de trabalho isolado. Na última sexta, integração geral.

! o que acontece

Login (G1) ≠ esperado por Notas (G2). Chat (G3) não reconhece usuários. Dashboard (G5) falha por dependência dos outros.

! resultado

Madrugada de estresse, códigos refeitos às pressas, aplicativo quase inoperante na apresentação final.

“Com suas palavras: você já viveu algo parecido? O que deu errado — e como poderia ter sido resolvido?”
conceito # 04

Da oficina artesanal à linha de montagem

  • Antes da CI: cada dev na sua “bancada” por semanas → integração manual → Integration Hell.
  • Origem: popularizada no fim dos anos 90 pelo Extreme Programming (XP), metodologia ágil de Grady Booch.
  • Analogia Ford: cada dev adiciona uma peça ao “chassi” do código, verificada automaticamente pela esteira.
  • Ferramentas históricas: CruiseControl e Jenkins → hoje: GitHub Actions, Travis CI, GitLab CI.
≡ evolução da integração
// Linha do tempo da Integração Contínua
Oficina Artesanal    XP / Booch (1999)    Jenkins    GitHub Actions
"Caos"               "Integração Frequente"    "Automatizado"
{ } conceito # 05

{ } O ciclo commit · build · test

Coração da CI — automatizado e disparado a cada nova “peça” adicionada à linha de montagem.

estação 1 — commit

Pequena alteração lógica salva no repositório central. Gatilho de todo o processo. Analogia: instalar uma porta no chassi.

estação 2 — build

Servidor CI compila, baixa dependências e empacota. Se dependência faltar ou houver erro de sintaxe: luz vermelha.

estação 3 — test

Bateria de testes automatizados: unitários (peças) e de integração (funcionamento conjunto). Se algum falhar: luz vermelha.

resultado — feedback

Luz verde: integração bem-sucedida.
Luz vermelha: falha detectada — corrija agora, enquanto é barata.

>_ conceito # 06

>_ Pipeline no GitHub Actions

O pipeline vive no próprio repositório em .github/workflows/ci.yml — versionado junto com o código.

.github/workflows/ci.yml ▶ github actions
name: Pipeline CI
on:
  push:
    branches: [ main ]     # dispara a cada commit em main
jobs:
  build-e-test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4    # COMMIT: baixa o codigo
      - run: pip install -r requirements.txt  # BUILD
      - run: pytest tests/ -v             # TEST
  • on: push — gatilho: a cada commit na branch main
  • runs-on — servidor limpo a cada execução do pipeline
caderno # 07

Registre no caderno

CI Integração Contínua — prática de integrar código ao repositório com alta frequência, acionando build e testes automáticos.
commit Pequena alteração lógica e coesa salva no repositório central. Gatilho do ciclo CI.
build Compilação do código, download de dependências e geração de versão executável pelo servidor de CI.
test Bateria de testes automatizados (unitários e de integração) executada após o build. Valida a saúde do software.
feedback Luz verde (integração OK) ou luz vermelha (falha detectada) — entregue em minutos após o commit.
Integration Hell Fenômeno de conflitos em cascata ao integrar código desenvolvido isoladamente por longos períodos.
? pause_e_responda # 08

? Pause e Responda

Qual é o principal objetivo da prática de Integração Contínua (CI)?
  • A Substituir os testadores humanos por robôs.
  • B Obter feedback rápido sobre cada pequena alteração.
  • C Fazer o deploy do software para o cliente final.
  • D Escrever códigos mais eficientes e mais rápido.

⌨ responda no caderno primeiro · depois registre no ava

gabarito # 09

Gabarito comentado

Qual é o principal objetivo da prática de Integração Contínua (CI)?
  • A Substituir os testadores humanos por robôs. → distrator: confunde automação de testes com eliminação da responsabilidade humana
  • B Obter feedback rápido sobre cada pequena alteração.
  • C Fazer o deploy do software para o cliente final. → distrator: confunde CI (integração) com CD (entrega/deploy contínuo)
  • D Escrever códigos mais eficientes e mais rápido. → distrator: confunde benefício lateral de velocidade com o objetivo central do processo
✓ O superpoder da CI é o ciclo de feedback rápido. A cada commit, o pipeline detecta problemas em minutos — quando ainda são pequenos, fáceis de rastrear e baratos de corrigir.
{ } aplicacao_conceitual # 10

{ } Ser sempre+ — FluxoCod

Você é desenvolvedor júnior na startup FluxoCod. São 16h30 de uma sexta-feira. A equipe nunca implementou CI e precisa integrar duas semanas de trabalho isolado até segunda. Você recebe uma mensagem urgente.

sua tarefa — resposta profissional escrita

Responda à mensagem de forma profissional e educativa, sugerindo uma estratégia que: reconheça a urgência sem causar pânico · explique o risco usando a analogia da linha de montagem · proponha um plano baseado em CI para minimizar os danos.

{ } Como desenvolver uma resposta que demonstre domínio técnico de CI sem alienar o time em um momento de pressão?
atividade_avaliativa # 11

Atividade — Todo mundo escreve

Enunciado: Individualmente, em 18 minutos, redigir a resposta profissional ao cenário FluxoCod aplicando os conceitos de CI da aula.

⌨ obrigatório incluir

  • Reconhecimento da urgência (sem pânico)
  • Analogia da linha de montagem vs. oficina
  • Explicação do risco da integração tardia
  • Estratégia com etapas baseadas em CI

✓ critérios de avaliação

  • Compreensão dos conceitos de CI
  • Aplicação de soluções práticas ao cenário
  • Uso de linguagem profissional e clara
  • Incorporação da analogia da linha de montagem
⌨ entrega: durante a aula · registro escrito · compartilhar no ava após revisão
sintese # 12

Então ficamos assim…

Feedback rápido

Benefício fundamental da CI: problemas identificados em minutos, não semanas.

Linha de montagem

CI transformou o desenvolvimento artesanal e caótico em processo automatizado e confiável.

{ }

commit · build · test

Cada commit dispara build e testes automáticos, mantendo o software sempre íntegro.

← aula anterior

Controle de versão com Git e GitHub — repositório, commits e histórico de alterações.

→ próxima aula

Configuração de pipeline de CI no GitHub Actions — estrutura do arquivo YAML e execução de testes reais.

📘 Gostou do que viu aqui no laboratório? No Professor com IA eu mostro, passo a passo, como você também pode criar ferramentas assim — mesmo sem saber programar.