Exemplo mais completo de um projeto Node.js com testes automatizados e um pipeline CI/CD usando o GitHub Actions. Neste exemplo, usaremos um aplicativo Node.js simples com testes unitários usando o framework Jest.

Passo 1: Configurar o Projeto

Primeiro, crie um novo repositório no GitHub e clone-o para o seu ambiente de desenvolvimento local.

Passo 2: Estrutura do Projeto

Vamos criar a estrutura básica do projeto. A estrutura de pastas deve ser semelhante a esta:

meu-projeto/
  |- .github/
  |   |- workflows/
  |       |- main.yml
  |- src/
  |   |- app.js
  |- test/
  |   |- app.test.js
  |- package.json
  |- README.md

Passo 3: Código de Exemplo

Aqui está um código de exemplo para app.js, que apenas contém uma função simples que somará dois números:

// src/app.js
function somar(a, b) {
  return a + b;
}

module.exports = somar;

Passo 4: Testes de Exemplo

Aqui está um teste Jest de exemplo para a função somar:

// test/app.test.js
const somar = require('../src/app');

test('soma 1 + 2 para igual a 3', () => {
  expect(somar(1, 2)).toBe(3);
});

test('soma -1 + 1 para igual a 0', () => {
  expect(somar(-1, 1)).toBe(0);
});

Passo 5: Configurar o GitHub Actions

Agora, vamos configurar o pipeline CI/CD no arquivo .github/workflows/main.yml:

name: CI/CD Pipeline

on:
  push:
    branches:
      - main

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
    - name: Checkout code
      uses: actions/checkout@v2

    - name: Set up Node.js
      uses: actions/setup-node@v2
      with:
        node-version: '14'

    - name: Install dependencies
      run: npm install

    - name: Run tests
      run: npm test

Este pipeline é semelhante ao anterior, mas inclui uma etapa para executar os testes usando o comando npm test. Certifique-se de que você tenha o Jest instalado como uma dependência de desenvolvimento no seu package.json.

Passo 6: Empurre para o GitHub

Agora, empurre todas as suas alterações para o GitHub:

git add .
git commit -m "Adicionar código e testes iniciais"
git push origin main

Passo 7: Verificar o Pipeline CI/CD

Vá para a seção "Actions" do seu repositório no GitHub para acompanhar o progresso do pipeline. O GitHub Actions executará automaticamente os testes sempre que você fizer um push para a branch "main".

Este é um exemplo simples de como configurar um pipeline CI/CD com testes automatizados no GitHub usando o GitHub Actions. Você pode expandir esse pipeline adicionando etapas de implantação para ambientes de produção, integração ou teste, dependendo das necessidades do seu projeto.