Automatizando Deploys de Sites com GitHub Actions: Um Guia Completo de CI/CD

github actions
hostoo

CI/CD (Integração Contínua/Entrega Contínua) é uma prática essencial no desenvolvimento moderno de software, permitindo a automação de testes, builds e deploys. Para projetos web, o GitHub Actions é uma ferramenta poderosa que simplifica a implementação de pipelines de CI/CD, garantindo atualizações rápidas e seguras.

Nesta matéria, exploraremos como configurar um fluxo automatizado de deploy para sites estáticos (HTML, CSS, JS) e dinâmicos (Node.js, PHP, etc.) usando GitHub Actions.


1. O que é CI/CD?

  • CI (Integração Contínua): Automatiza a construção e teste do código sempre que novas alterações são enviadas ao repositório.
  • CD (Entrega Contínua): Automatiza a implantação do código em um ambiente de produção ou staging após os testes.

Vantagens do CI/CD

✔ Redução de erros (testes automatizados)
✔ Deploys mais rápidos (sem intervenção manual)
✔ Maior confiabilidade (processo padronizado)


2. GitHub Actions: Conceitos Básicos

GitHub Actions permite criar workflows (fluxos de trabalho) em arquivos YAML (.yml) dentro do diretório .github/workflows/.

Componentes Principais

  • Workflow: Um processo automatizado definido em um arquivo YAML.
  • Job: Conjunto de etapas executadas em um mesmo ambiente.
  • Step: Tarefa individual dentro de um job (ex: instalar dependências).
  • Action: Bloco de código reutilizável para executar tarefas comuns.

3. Configurando CI/CD para um Site Estático

Vamos criar um workflow para fazer deploy de um site estático (HTML/CSS/JS) no GitHub Pages.

Passo a Passo

  1. Crie um repositório com seus arquivos estáticos.
  2. Adicione um workflow em .github/workflows/deploy.yml:
name: Deploy to GitHub Pages

on:
  push:
    branches: ["main"]  # Executa apenas no branch main

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout code
        uses: actions/checkout@v4

      - name: Setup Node.js
        uses: actions/setup-node@v3
        with:
          node-version: '18'

      - name: Install dependencies (se necessário)
        run: npm install

      - name: Build (se usar geradores como Jekyll, Next.js, etc.)
        run: npm run build

      - name: Deploy to GitHub Pages
        uses: peaceiris/actions-gh-pages@v3
        with:
          github_token: ${{ secrets.GITHUB_TOKEN }}
          publish_dir: ./dist  # Pasta de build
  1. Commit e push: O GitHub Actions executará automaticamente e publicará o site em https://<seu-usuario>.github.io/<repositorio>.

4. Configurando CI/CD para um Site Dinâmico (Node.js + Vercel/AWS)

Se o site usa um backend (Node.js, PHP, Python), podemos automatizar o deploy em serviços como VercelAWS, ou Heroku.

Exemplo: Deploy na Vercel

name: Deploy to Vercel

on:
  push:
    branches: ["main"]

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout code
        uses: actions/checkout@v4

      - name: Install Vercel CLI
        run: npm install -g vercel

      - name: Deploy to Vercel
        run: vercel --prod --token ${{ secrets.VERCEL_TOKEN }}

Onde obter o VERCEL_TOKEN?

  1. Acesse Vercel Dashboard.
  2. Crie um token e adicione como segredo no GitHub (Settings > Secrets > New repository secret).

5. Boas Práticas para CI/CD

  • Testes automatizados: Adicione etapas de teste no workflow.
  • Ambientes separados: Use devstaging e production.
  • Rollback automático: Configure notificações em caso de falha.
  • Cache de dependências: Acelere os workflows com caching.

Conclusão

GitHub Actions é uma ferramenta versátil para automatizar deploys de sites, reduzindo erros manuais e acelerando o processo de entrega. Seja para sites estáticos ou dinâmicos, a automação de CI/CD garante maior eficiência e confiabilidade.

Experimente configurar seu próprio workflow e veja como o deploy se torna mais ágil! 🚀


Recursos Adicionais

Pronto para automatizar seus deploys? 💻⚡

Quais as Melhores Opções para Hospedar um Site Gratuitamente?

hospeda meu site
hospedagem grátis

Criar um site pode ser uma tarefa desafiadora, especialmente quando o orçamento é limitado. Felizmente, existem diversas plataformas que oferecem hospedagem gratuita para sites pessoais, blogs, portfólios e até pequenos projetos comerciais. Neste artigo, vamos explorar as melhores opções de hospedagem gratuita, destacando suas vantagens, limitações e casos de uso ideais.


1. GitHub Pages

Ideal para: Desenvolvedores, portfólios e sites estáticos.

GitHub Pages é uma excelente opção para quem busca hospedar sites estáticos (HTML, CSS, JavaScript) de forma gratuita. Ele é integrado ao GitHub, permitindo que você publique seu site diretamente de um repositório.

Vantagens:

✅ Hospedagem 100% gratuita (sem custos ocultos).
✅ Domínio personalizável (ex: seunome.github.io).
✅ Suporte a Jekyll para blogs estáticos.
✅ Ótimo para projetos open-source.

Limitações:

❌ Apenas para sites estáticos (não suporta PHP, MySQL ou back-end).
❌ Sem suporte a bancos de dados.
❌ Limite de largura de banda (pode ser restrito em casos de alto tráfego).

🔗 Acesse GitHub Pages


2. Netlify

Ideal para: Sites estáticos, aplicações front-end e projetos JAMstack.

Netlify é uma plataforma moderna que oferece hospedagem gratuita para sites estáticos com deploy contínuo a partir do GitHub, GitLab ou Bitbucket. Ele também inclui recursos como forms, autenticação e funções serverless (Lambda).

Vantagens:

✅ Hospedagem grátis com domínio meusite.netlify.app.
✅ Deploy automático via Git.
✅ Suporte a HTTPS gratuito.
✅ Inclui CDN (Rede de Distribuição de Conteúdo) para melhor desempenho.

Limitações:

❌ Limite de 100GB de banda/mês no plano gratuito.
❌ Funções serverless têm limite de uso.

🔗 Acesse Netlify


3. Vercel

Ideal para: Aplicações React, Next.js e projetos front-end.

Vercel é especializada em hospedagem para frameworks JavaScript modernos como React, Next.js, Vue e Svelte. Ela oferece um plano gratuito robusto com deploy instantâneo a partir do GitHub.

Vantagens:

✅ Hospedagem gratuita com domínio meusite.vercel.app.
✅ Suporte a Next.js e SSR (Server-Side Rendering).
✅ Deploy automático e pré-visualização de branches.
✅ Inclui CDN e HTTPS.

Limitações:

❌ Limite de 100GB de banda/mês.
❌ Funções serverless têm restrições no plano gratuito.

🔗 Acesse Vercel


4. InfinityFree

Ideal para: Sites em PHP/MySQL (WordPress, Joomla, etc.).

Se você precisa de hospedagem gratuita com suporte a PHP e MySQL, o InfinityFree é uma ótima opção. Ele permite instalar WordPress e outros CMS sem custos.

Vantagens:

✅ Suporte a PHP e MySQL (banco de dados incluso).
✅ 400MB de espaço em disco.
✅ Domínio gratuito (seusite.epizy.com) ou personalizado.
✅ Painel de controle (cPanel).

Limitações:

❌ Anúncios obrigatórios no plano gratuito.
❌ Limite de 50.000 visitas/mês.
❌ Sem suporte a e-mails profissionais.

🔗 Acesse InfinityFree


5. Wix (Site Builder Gratuito)

Ideal para: Sites pessoais, portfólios e pequenos negócios.

Wix oferece um construtor de sites drag-and-drop com hospedagem gratuita, ideal para quem não tem conhecimento técnico.

Vantagens:

✅ Facilidade de uso (sem codificação).
✅ Templates profissionais.
✅ Domínio gratuito meusite.wixsite.com.

Limitações:

❌ Anúncios do Wix no site.
❌ Sem domínio personalizado grátis.

🔗 Acesse Wix


Conclusão: Qual a Melhor Hospedagem Grátis?

PlataformaMelhor ParaPHP/MySQLDomínio GrátisLimitações Principais
GitHub PagesSites estáticos❌ Não✅ (user.github.io)Sem back-end
NetlifySites JAMstack❌ Não✅ (site.netlify.app)Banda limitada
VercelApps React/Next.js❌ Não✅ (site.vercel.app)Limite de funções
InfinityFreeWordPress/PHP✅ Sim✅ (site.epizy.com)Anúncios, 50k visits/mês
WixSites sem código❌ Não✅ (site.wixsite.com)Anúncios do Wix

Se você precisa de um site estático (portfólio, blog técnico), GitHub Pages, Netlify ou Vercel são as melhores opções.

Se quer um site dinâmico com WordPress ou PHP, o InfinityFree é a melhor escolha gratuita.

Para quem não sabe programar, Wix pode ser uma alternativa simples.


Dica Extra: Quando Migrar para Hospedagem Paga?

Se seu site crescer e precisar de:
✔ Mais desempenho e estabilidade.
✔ Domínio personalizado sem anúncios.
✔ Suporte a banco de dados e e-mails profissionais.

Considere planos baratos como Hostinger, Alphimedia ou Hospeda Meu Site.


E aí, qual hospedagem gratuita você vai usar? Compartilhe nos comentários! 🚀