Como Configurar uma Pipeline para Bitbucket Pipelines em um Projeto Node.js

vitorrios1001

Vitor Rios

Posted on June 5, 2024

Como Configurar uma Pipeline para Bitbucket Pipelines em um Projeto Node.js

Introdução

Bitbucket Pipelines é uma ferramenta poderosa de integração contínua e entrega contínua (CI/CD) que permite automatizar a construção, teste e implantação de seu código diretamente do Bitbucket. Neste artigo, vamos mostrar como configurar uma pipeline para um projeto Node.js utilizando o Bitbucket Pipelines.

Pré-requisitos

  • Conta no Bitbucket.
  • Repositório do Bitbucket com um projeto Node.js.
  • Conhecimento básico em YAML.

Passo 1: Criar o Arquivo de Configuração

O primeiro passo é criar um arquivo de configuração para o Bitbucket Pipelines. Esse arquivo deve ser chamado bitbucket-pipelines.yml e deve ser colocado no diretório raiz do seu projeto.

Passo 2: Configurar a Pipeline Básica

Aqui está um exemplo básico de configuração de pipeline para um projeto Node.js:

image: node:14

pipelines:
  default:
    - step:
        name: Install dependencies
        caches:
          - node
        script:
          - npm install
    - step:
        name: Run tests
        script:
          - npm test
    - step:
        name: Build and deploy
        script:
          - npm run build
          - ./deploy.sh # Supondo que você tenha um script de deploy
Enter fullscreen mode Exit fullscreen mode

Explicação dos Campos

  • image: Define a imagem Docker que será usada para rodar o pipeline. Neste caso, estamos usando a imagem oficial do Node.js.
  • pipelines: Define os pipelines que serão executados. No exemplo, estamos usando o pipeline padrão (default).
  • step: Cada passo define um conjunto de comandos a serem executados.

Passo 3: Configuração Detalhada

Para um cenário mais complexo, por exemplo, se você quiser que o deploy seja executado apenas em branches específicas como main ou develop, você pode configurar da seguinte forma:

image: node:14

pipelines:
  default:
    - step:
        name: Install dependencies
        caches:
          - node
        script:
          - npm install
    - step:
        name: Run tests
        script:
          - npm test

  branches:
    main:
      - step:
          name: Build and deploy to production
          script:
            - npm run build
            - ./deploy.sh

    develop:
      - step:
          name: Build and deploy to staging
          script:
            - npm run build
            - ./deploy-staging.sh
Enter fullscreen mode Exit fullscreen mode

Passo 4: Variáveis de Ambiente

Se o seu processo de deploy precisar de variáveis de ambiente (por exemplo, chaves de API, credenciais, etc.), você pode configurá-las diretamente no Bitbucket:

  1. Vá para o seu repositório no Bitbucket.
  2. Clique em Repository settings.
  3. Vá para a seção Pipelines > Environment variables.
  4. Adicione as variáveis necessárias.

Passo 5: Script de Deploy

Aqui está um exemplo simples de um script de deploy (deploy.sh) que você pode usar para copiar o build para o servidor e reiniciar a aplicação:

#!/bin/bash

# Fazer o deploy do build para o servidor
scp -r ./build user@your-server:/path/to/deploy

# Rodar comandos no servidor remoto
ssh user@your-server << 'EOF'
  cd /path/to/deploy
  npm install --production
  pm2 restart your-app
EOF
Enter fullscreen mode Exit fullscreen mode

Explicação do Script

  • scp: Este comando copia recursivamente a pasta ./build para o servidor remoto.
  • ssh: Este comando executa comandos no servidor remoto. No exemplo, ele navega até o diretório de deploy, instala as dependências de produção e reinicia a aplicação usando pm2.

Conclusão

Configurar uma pipeline no Bitbucket Pipelines é uma maneira eficiente de automatizar o processo de construção, teste e implantação de seu projeto Node.js. O exemplo fornecido aqui é um ponto de partida que você pode personalizar conforme suas necessidades específicas.

A automação de tarefas repetitivas não só economiza tempo, mas também reduz o risco de erros humanos, garantindo que o código seja testado e implantado de maneira consistente.

Se você tiver dúvidas ou precisar de mais detalhes sobre algum dos passos, sinta-se à vontade para perguntar!

Caso queira dar uma olhadinha no código, segue o link do repositório:

Node-Example

💖 💪 🙅 🚩
vitorrios1001
Vitor Rios

Posted on June 5, 2024

Join Our Newsletter. No Spam, Only the good stuff.

Sign up to receive the latest update from our blog.

Related