CI/CD para projetos JavaScript: GitHub Actions do A ao Z

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

Introdução: Por que CI/CD é Essencial para Projetos JavaScript

O desenvolvimento web moderno é impensável sem automação. Todos os dias, desenvolvedores JavaScript (Node.js) enfrentam tarefas rotineiras: executar testes, verificar o código com um linter, compilar e implantar a aplicação. Realizar essas operações manualmente não só consome tempo, mas também é propenso a erros. É aí que o CI/CD (Integração Contínua / Entrega Contínua) vem ao resgate — uma metodologia que permite automatizar todas as etapas do ciclo de vida do software.

O GitHub Actions é uma ferramenta de automação integrada na plataforma GitHub, ideal para configurar pipelines de CI/CD. Neste artigo, vamos detalhar como configurar um ciclo completo de automação para um projeto JavaScript (Node.js) do zero: desde a execução de testes até a implantação em um servidor. Você aprenderá a criar um workflow, escrever arquivos de configuração e evitar erros comuns.



Fundamentos do GitHub Actions: Estrutura e Componentes

Antes de escrever código, vamos entender os conceitos-chave do GitHub Actions. Todo o pipeline é descrito em arquivos YAML armazenados no diretório .github/workflows do seu repositório.

Elementos Principais de um Workflow

  • Workflow — um processo automatizado composto por um ou mais Jobs.
  • Job — um conjunto de Steps executados em um único Runner (máquina virtual).
  • Step — um comando individual ou Action.
  • Event — um gatilho que inicia o workflow (ex.: push, pull request).

Para projetos JavaScript, um workflow padrão se parece com isto:

name: CI/CD for Node.js

on: push: branches: [ main ] pull_request: branches: [ main ]

jobs: build-and-test: runs-on: ubuntu-latest strategy: matrix: node-version: [18.x, 20.x] steps: - uses: actions/checkout@v4 - name: Setup Node.js uses: actions/setup-node@v4 with: node-version: ${{ matrix.node-version }} - name: Install dependencies run: npm ci - name: Linting run: npm run lint - name: Tests run: npm test

Observe o strategy.matrix — isso permite testar o código em várias versões do Node.js simultaneamente, o que é crítico para bibliotecas e pacotes.



Configuração Passo a Passo de CI/CD para um Projeto Node.js

Vamos analisar um exemplo completo de configuração de pipeline para uma aplicação web Express.js típica. Comece com o arquivo base .github/workflows/node-ci.yml.

Passo 1: Verificação Básica de Código

name: Node.js CI

on: push: branches: [ develop, main ] pull_request: branches: [ main ]

jobs: quality: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Setup Node.js uses: actions/setup-node@v4 with: node-version: '20' cache: 'npm' - name: Install dependencies run: npm ci - name: Lint code run: npm run lint - name: Run unit tests run: npm run test:unit - name: Build project run: npm run build

Pontos-chave:

  • cache: 'npm' — armazena em cache o node_modules, acelerando execuções subsequentes.
  • npm ci — instalação limpa das dependências, mais rápida e confiável que npm install.
  • Dividir testes em unitários e de integração (opcional) permite um feedback mais rápido.



Passo 2: Testes de Integração com Banco de Dados

Para testar com um banco de dados real, use os serviços do GitHub Actions:

jobs:  integration-tests:    runs-on: ubuntu-latest                

Blogs

Book Recommendations