🚀 Capítulo 16: GitHub Actions: A Esteira Automatizada (Tema: Fábrica de Chocolate)

NOTE

Este capítulo utiliza a temática de A Fantástica Fábrica de Chocolate para explicar o GitHub Actions. Automatize os testes e as entregas do seu código para não precisar fazer tudo na mão!


1. 🎯 Objetivo da Aula

Compreender o que é o GitHub Actions, o conceito de automação de processos (CI/CD) e como criar uma “esteira de produção” que testa e publica o seu código automaticamente sempre que você faz uma alteração.

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

Na fábrica de chocolates do Willy Wonka, as coisas não são feitas de forma manual e lenta. Não há Oompa-Loompas mexendo caldeirões com colheres de pau o dia todo. Tudo é altamente automatizado! Existem tubos que sugam o chocolate, máquinas que testam o sabor e braços mecânicos que embalam os doces na velocidade da luz.

No desenvolvimento de software, fazer as coisas manualmente é perigoso e demorado:

  • Você altera o código.
  • Você mesmo precisa rodar os testes no seu computador.
  • Você mesmo precisa abrir o servidor e enviar os arquivos novos. E se você esquecer de rodar um teste e enviar o código com erro?

Para resolver isso, nós usamos o GitHub Actions! Ele é a nossa fábrica automatizada. Seu desafio é programar os robôs da fábrica para trabalharem por você!


🧠 Fundamentos: A Teoria Traduzida

O GitHub Actions permite criar fluxos de trabalho (Workflows) automáticos que reagem a eventos no seu repositório.

🏭 Como funciona a Esteira de Produção:

  1. O Gatilho (Trigger): É o evento que faz a esteira começar a rodar. O gatilho mais comum é o git push. Sempre que você envia código novo para o GitHub, a esteira liga!
  2. O Computador Virtual (Runner): O GitHub liga um computador nos servidores deles (pode ser Windows, Linux ou Mac) puramente para rodar a sua esteira. Você não gasta a memória do seu PC!
  3. Os Passos (Steps): São as ordens que você dá para o computador virtual fazer.
    • Passo 1: Baixe o meu código que acabei de enviar.
    • Passo 2: Instale o compilador de C++ ou o Python.
    • Passo 3: Rode os testes automatizados.
    • Passo 4: Se todos os testes passarem, envie o código para o servidor do site!

4. 📖 Exemplo Guiado: O Arquivo YAML

Como ensinamos o GitHub Actions a criar essa esteira? Nós criamos um arquivo de texto especial na pasta do projeto usando a extensão .yml (YAML). Ele se parece com uma lista de compras bem organizada:

name: Testes Automáticos
on: [push] # O Gatilho
 
jobs:
  verificar-codigo:
    runs-on: ubuntu-latest # O Computador virtual
    steps:
      - name: Baixar Código
        uses: actions/checkout@v2
      - name: Rodar Testes
        run: npm test

5. 🛠️ Prática Obrigatória 1: Desenhando a Esteira

Imagine que você está criando uma esteira no GitHub Actions para um projeto em Python.

  1. Qual evento você usaria como Gatilho para disparar a esteira?
  2. Escreva pelo menos passos (Steps) que essa esteira precisaria executar para garantir que o código está funcionando.

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

  1. Por que usar o GitHub Actions para rodar os testes do projeto é muito mais seguro do que confiar que cada programador vai lembrar de rodar os testes no seu próprio computador antes de enviar o código?

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

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

8. 📂 Estrutura de Pastas

seu-projeto/
├── .github/
│   └── workflows/
│       └── testes.yml

💡 Checkpoint de Lógica

O GitHub Actions é gratuito para repositórios públicos e tem um limite generoso de minutos gratuitos por mês para repositórios privados. É a ferramenta padrão de CI/CD para a maioria dos projetos novos hoje em dia!

10. 🔥 Desafio de Fixação

Pesquise o que significa a sigla CI/CD (Continuous Integration / Continuous Deployment).

🔑 Gabarito de Código/Fórmulas

Gabarito da Prática 1:

  1. O evento de push (ou abertura de um pull_request).
  2. Passo 1: Instalar o Python no computador virtual. Passo 2: Rodar o comando de testes (Ex: pytest). Gabarito da Prática 2:
  3. Porque seres humanos esquecem coisas ou podem ficar com preguiça quando estão com pressa. O robô do GitHub Actions não tem sentimentos e não esquece: ele sempre vai rodar os testes de forma implacável para toda e qualquer alteração enviada!

Capitulo Anterior | Proximo Capitulo