🚀 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:
- 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! - 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!
- 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 test5. 🛠️ Prática Obrigatória 1: Desenhando a Esteira
Imagine que você está criando uma esteira no GitHub Actions para um projeto em Python.
- Qual evento você usaria como Gatilho para disparar a esteira?
- 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
- 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)
- Faça o Commit: No GitHub Desktop, digite a mensagem (ex:
Finaliza Capítulo 16 GuiaFerramentas) e clique em Commit to main. - 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:
- O evento de
push(ou abertura de umpull_request). - Passo 1: Instalar o Python no computador virtual. Passo 2: Rodar o comando de testes (Ex:
pytest). Gabarito da Prática 2: - 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!