DEV Community

Cover image for Como Configurar uma Pipeline para Bitbucket Pipelines em um Projeto Node.js
Vitor Rios
Vitor Rios

Posted on • Edited on

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

Top comments (0)