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

6

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

Image of Timescale

🚀 pgai Vectorizer: SQLAlchemy and LiteLLM Make Vector Search Simple

We built pgai Vectorizer to simplify embedding management for AI applications—without needing a separate database or complex infrastructure. Since launch, developers have created over 3,000 vectorizers on Timescale Cloud, with many more self-hosted.

Read more

Top comments (0)

Sentry image

See why 4M developers consider Sentry, “not bad.”

Fixing code doesn’t have to be the worst part of your day. Learn how Sentry can help.

Learn more

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay