Aula 11 - CI/CD Moderno (GitHub Actions) 🚀
Objetivo
Objetivo: Compreender o ciclo de integração e entrega contínua (CI/CD), aprender a criar workflows automatizados no GitHub e garantir que o código seja testado automaticamente a cada push.
1. O que é CI/CD? 🔄
Em vez de rodar testes e linters manualmente na sua máquina local, a nuvem assume a responsabilidade após cada interação no controle de versão.
Integrar e validar o código de dezenas de desenvolvedores repetidas vezes ao dia. O servidor "puxa" o código, roda os linters, compila (build) e dispara centenas de testes unitários. Se algo quebrar, o pull request é bloqueado.
Uma vez que os testes garantem que o software está estável (CI passou), o processo de CD empacota esse aplicativo e o instale automaticamente nos servidores hospedados de teste ou de produção, sem intervenção humana.
2. GitHub Actions: Automação na Nuvem 🤖
O GitHub Actions é a ferramenta de CI/CD integrada ao GitHub. Ele funciona através de arquivos de configuração no formato YAML.
Componentes do Actions:
- Workflow: O processo completo (ex: "Build e Teste").
- Event: O que dispara o processo (ex: um
pushou umpull_request). - Job: Uma tarefa específica dentro do workflow (ex: "rodar testes unitários").
- Steps: Os comandos passo a passo dentro de um Job.
3. Visualização da Pipeline
mermaid graph LR Push([Git Push]) --> Trigger{GitHub Event} Trigger --> VM([Spin up Virtual Machine]) VM --> Install([npm install]) Install --> Lint([npx eslint .]) Lint --> Test([npm test]) Test -- Success --> Deploy([Auto Deploy]) Test -- Failure --> Notify([Notificar Developer])
4. O Arquivo de Configuração (.yml) 📄
Abaixo, um exemplo de como é um arquivo de workflow real:
name: Node.js CI
on: [push]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Install dependencies
run: npm install
- name: Run tests
run: npm test
5. Praticando no Terminal (Simulação) 💻
Imagine o terminal do servidor do GitHub executando seu workflow:
Step 1: Checking out code... OK
Step 2: Installing Node 18... OK
Step 3: Running npm install... OK
Step 4: Running npm test...
PASS test/auth.test.js
PASS test/db.test.js
Step 5: All tests passed! Pipeline completed.
6. Prática: Monitorando um Workflow 🚀
- Vá até um repositório seu no GitHub.
- Clique na aba Actions.
- O GitHub sugerirá "Workflows" baseados na sua linguagem.
- Escolha um simples (como Node.js ou Python) e clique em Set up this workflow.
- Clique em Commit changes.
- Veja o workflow rodar em tempo real e verifique se ele fica "Verde" (Sucesso).
🔗 Materiais da Aula
-
Slides
Material visual com diagramas e conceitos-chave.
-
Quiz
Teste seu conhecimento com 10 questões interativas.
-
Exercícios
5 exercícios progressivos (básico → desafio).
-
Projeto
Aplicação prática dos conceitos da aula.