BDT CLI (bdt)

Shell de operaciones de la plataforma BDT: clona los repositorios desde el GitLab del banco, compila los servicios, construye sus imágenes Docker y los levanta con docker compose. Incluye menú interactivo y asistente guiado de construcción.

Requisitos

  • bash 3.2+ (macOS o Linux)
  • git
  • Docker + Docker Compose v2
  • Java 21 (JDK) — para compilar gateway / service-bus
  • Node.js 20 — para el frontend (solo si se compila fuera de Docker)

Instalación

git clone https://git.dcgeeks.net/BDT/bdt-cli.git
cd bdt-cli
./bdt.sh setup        # instala el comando global 'bdt' + autocompletado + alias

O descarga directa del script:

curl -fsSL https://git.dcgeeks.net/BDT/bdt-cli/raw/branch/main/bdt.sh -o bdt.sh
chmod +x bdt.sh
./bdt.sh setup

setup guarda la raíz del proyecto en ~/.bdt/project-root. Ejecutalo desde el directorio donde van a vivir los repositorios de la plataforma (el script clona backend/, frontend/, infrastructure/, etc. relativo a esa raíz).

Configuración

El script lee ~/.bdt/config al arrancar (las variables de entorno tienen prioridad):

# GitLab del banco
GITLAB_URL=http://gitlab.bicentenariobu.com.ve
GITLAB_GROUP=dcgeeks

# Ambiente por defecto (desarrollo|calidad|demo|produccion)
DEFAULT_ENV=desarrollo

# Servidor de deploy remoto (comando server-deploy)
DEPLOY_SERVER=<ip-del-servidor>
DEPLOY_USER=<usuario-ssh>

Credenciales git (para que clone/pull no pidan contraseña):

bdt git-auth <usuario-gitlab>

Uso rápido

bdt                  # menú interactivo
bdt construir        # asistente: elegir servicio + rama → git → build → docker → up
bdt deploy           # pipeline completo: pull → compilar → imágenes → up → health
bdt status           # estado de servicios y contenedores
bdt health           # health check completo
bdt logs gateway -f  # seguir logs de un servicio
bdt help             # ayuda completa
bdt self-update      # en el server: git pull bdt-cli + reinstalar enlace
bdt deploy-jar gateway   # JAR en /tmp → docker build → up (server)

Actualizar el shell en el server del banco

El script vive en su propio repo git (bdt-cli), separado del monorepo de aplicaciones:

# Primera vez (o migrar desde la copia suelta /opt/bdt-platform/bdt.sh):
bdt self-update

# Después de cada release publicado con `bdt publish`:
bdt self-update

self-update clona o hace git pull en /opt/bdt-platform/bdt-cli (configurable con BDT_CLI_DIR en ~/.bdt/config), reinstala /usr/local/bin/bdt y arregla permisos de logs.

Repos:

  • Gitea: https://git.dcgeeks.net/BDT/bdt-cli
  • GitLab banco (VPN): http://gitlab.bicentenariobu.com.ve/dcgeeks/bdt-cli

Publicar una versión nueva desde desarrollo:

# En el monorepo BDT, después de editar bdt.sh:
./bdt.sh publish    # commit + push a Gitea y GitLab del banco

Asistente construir (opción 0 del menú)

Flujo guiado para construir y desplegar un servicio:

  1. Pregunta qué servicio construir (frontend, gateway, service-bus, canales-admin-web, canales-worker) mostrando rama por defecto y estado del contenedor.
  2. Pregunta la rama (Enter = rama por defecto del servicio).
  3. Muestra el plan y pide confirmación.
  4. Ejecuta: descarga de la rama desde el GitLab del banco → gradle bootJar (solo servicios Java) → docker builddocker compose up -d --force-recreate → health check.

Si hay cambios locales sin commitear, ofrece guardarlos en stash antes de cambiar de rama.

Servicios gestionados

Servicio Stack Rama default Puerto
frontend Next.js develop 59002
gateway Spring Boot develop 58050
service-bus Spring Boot develop 58060
canales-admin-web Next.js (pnpm) master 58180
canales-worker Node (pnpm) master 59091

Infraestructura (postgres, redis, redpanda, keycloak, mailpit, prometheus, grafana) se levanta con bdt up infra.

Notas

  • Los servicios Java se compilan con gradle bootJar antes del docker build (el Dockerfile copia build/libs/*.jar). Frontend y canales compilan dentro del Docker build (multi-stage).
  • El nombre del remote que apunta al GitLab del banco puede variar por repositorio; el script lo detecta automáticamente por URL.
  • Logs de compilación en <raíz>/logs/.
Description
CLI de operaciones BDT Platform — clone, build, deploy y monitoreo de servicios Docker
Readme 233 KiB
Languages
Shell 100%