Aula 11: CI/CD Moderno (GitHub Actions) 🚀
🎯 Nossa Missão
- Entender o que é CI e CD.
- Conhecer o GitHub Actions.
- Aprender a sintaxe YAML de workflows.
- Automatizar o ciclo de vida do código.
🏗️ O que é CI (Continuous Integration)?
Integrar o código com frequência. * Testes automáticos rodam a cada push. * Erros de integração são pegos cedo. * Garante que a main nunca quebre.
🚚 O que é CD (Continuous Delivery/Deployment)?
Entregar o código pronto para o usuário. * Delivery: Build pronto para ser lançado (clique manual). * Deployment: Lançamento 100% automático em produção.
♾️ O Infinito do DevOps
mermaid graph TD Plan --> Code --> Build --> Test Test --> Release --> Deploy --> Operate Operate --> Monitor --> Plan
🐙 Por que GitHub Actions?
- Integrado ao repositório.
- Nativamente grátis para repos públicos.
- Ecossistema gigante de ações prontas.
- Suporta Linux, Mac e Windows.
🗂️ A Anatomia do GitHub Actions
- Workflow: O processo completo (arquivo
.yml). - Event (Trigger): O que dispara o processo (push, pr).
- Job: Um conjunto de tarefas em um servidor.
- Step: Uma tarefa individual (comando ou script).
- Runner: O servidor virtual que executa tudo.
📄 O Formato YAML
Yet Another Markup Language. * Baseado em indentação (espaços). * Muito fácil de ler para humanos. * Padrão para ferramentas de DevOps.
🎯 Gatilhos (Triggers)
Quando a mágica acontece?
🏗️ Definindo o Ambiente (Runner)
Onde seu código vai rodar?
* O GitHub cria uma máquina virtual limpa para você.🔨 Passos (Steps)
A lista de tarefas.
*uses: Usa uma ação pronta da comunidade. * run: Roda um comando de terminal. 🤫 Gerenciando Segredos (Secrets)
NUNCA escreva senhas no arquivo YAML. * Use as Settings > Secrets do GitHub. * Acesse via: ${{ secrets.MINHA_SENHA }}. * O log do GitHub esconde o valor automaticamente!
📉 Visualizando a Pipeline
```mermaid sequenceDiagram participant D as Dev participant G as GitHub participant R as Runner (Ubuntu)
D->>G: git push
G->>G: Detecta Push na main
G->>R: Inicia Workflow
R->>R: Checkout Código
R->>R: Instala Dependências
R->>R: Roda Testes
R->>G: Relata Sucesso (CHECK VERDE)
```
🧩 Actions Marketplace
Não reinvente a roda! Existem ações prontas para: * Enviar mensagem no Slack. * Fazer deploy na Amazon (AWS). * Escritar código no Docker Hub. * Login no Firebase.
🔄 Cache em Pipelines
Economizando tempo (e dinheiro). * Você não precisa baixar as bibliotecas (node_modules) do zero a cada vez. * O Actions pode guardar o cache e acelerar a build em 50%!
🛡️ Proteção de Branch
Combine Actions com regras de repositório. * Impeça o merge se a pipeline falhar. * Exija pelo menos 1 aprovação de colega (Code Review).
📉 Artefatos
Onde fica o arquivo final? * Você pode salvar o resultado da build (ex: um .zip ou um .apk) como artefato para download no final do workflow.
💰 Custos e Limites
- Gratuito para Open Source.
- Minutos limitados para repos privados (2000 min/mês no plano free).
🏆 Checklist de CI/CD Pro
- Entende a diferença entre Workflow, Job e Step.
- Sabe criar um arquivo
.ymlbásico. - Entende o conceito de Secrets.
- Consegue visualizar o log de erro no GitHub.
📝 Prática de Hoje
- Criar a pasta
.github/workflows. - Criar um workflow de "Hello World".
- Ver ele rodar na aba "Actions" após o push.
🏁 Dúvidas?
Automação é o que separa amadores de profissionais! 🚀🚀