chore: sync bdt.sh v2.5.0 (monorepo @ 79cb856)
This commit is contained in:
84
bdt.sh
84
bdt.sh
@@ -20,7 +20,7 @@ set -euo pipefail
|
|||||||
# CONFIGURACION
|
# CONFIGURACION
|
||||||
#===============================================================================
|
#===============================================================================
|
||||||
|
|
||||||
SCRIPT_VERSION="2.4.0"
|
SCRIPT_VERSION="2.5.0"
|
||||||
SCRIPT_NAME="$(basename "$0")"
|
SCRIPT_NAME="$(basename "$0")"
|
||||||
|
|
||||||
# Directorios - resolver symlinks para encontrar la ruta real
|
# Directorios - resolver symlinks para encontrar la ruta real
|
||||||
@@ -587,6 +587,82 @@ cmd_jar_deploy() {
|
|||||||
ok "Deploy de ${svc} enviado a ${server}. Verificá salud con: ${GRAY}bdt logs ${svc} 100${NC} (o el health del server)."
|
ok "Deploy de ${svc} enviado a ${server}. Verificá salud con: ${GRAY}bdt logs ${svc} 100${NC} (o el health del server)."
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#===============================================================================
|
||||||
|
# COMANDO: deploy-jar - No interactivo: mover un JAR externo → build/libs → build → up
|
||||||
|
# Versión scriptable de la "Opción 2" de rebuild (sirve para CI o uso directo).
|
||||||
|
# Por defecto: build SIN CACHÉ + limpia docker previo. Corre donde estés (en el server).
|
||||||
|
# Uso: bdt deploy-jar <gateway|service-bus> [ruta-jar] [--cache] [--no-clean]
|
||||||
|
# Sin ruta-jar → toma el .jar más reciente de JAR_INBOX (def /tmp).
|
||||||
|
#===============================================================================
|
||||||
|
|
||||||
|
cmd_deploy_jar() {
|
||||||
|
banner
|
||||||
|
local svc="" jar_path="" nocache="nocache" clean="1" a
|
||||||
|
for a in "$@"; do
|
||||||
|
case "$a" in
|
||||||
|
--cache) nocache="" ;;
|
||||||
|
--no-cache) nocache="nocache" ;;
|
||||||
|
--no-clean) clean="" ;;
|
||||||
|
--clean) clean="1" ;;
|
||||||
|
--*) warn "Flag desconocido: $a" ;;
|
||||||
|
*) if [[ -z "$svc" ]]; then svc="$a"; else jar_path="$a"; fi ;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
case "$svc" in
|
||||||
|
gateway|service-bus) ;;
|
||||||
|
*) err "Uso: bdt deploy-jar <gateway|service-bus> [ruta-jar] [--cache] [--no-clean]"
|
||||||
|
echo -e " ${GRAY}Sin ruta-jar usa el .jar más reciente en JAR_INBOX (${JAR_INBOX:-/tmp}).${NC}"
|
||||||
|
return 1 ;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
local dir; dir="$(repo_dir "$svc")"
|
||||||
|
[[ -z "$dir" ]] && { err "Servicio desconocido: ${svc}"; return 1; }
|
||||||
|
local inbox="${JAR_INBOX:-/tmp}"
|
||||||
|
|
||||||
|
step "DEPLOY-JAR ${svc}" "$(svc_desc "$svc") — jar externo → build${nocache:+ sin caché} → up"
|
||||||
|
|
||||||
|
# 1. Resolver el JAR (ruta explícita o el más reciente del inbox)
|
||||||
|
[[ -z "$jar_path" ]] && jar_path="$(ls -t "${inbox}"/*.jar 2>/dev/null | grep -v -- '-plain.jar' | head -1)"
|
||||||
|
[[ -z "$jar_path" || ! -f "$jar_path" ]] && { err "JAR no encontrado (${jar_path:-vacío}). Pasá la ruta o dejá un .jar en ${inbox}"; return 1; }
|
||||||
|
ok "JAR: ${jar_path} ($(du -h "$jar_path" | cut -f1))"
|
||||||
|
|
||||||
|
# 2. Colocar en build/libs (uno solo — el Dockerfile copia *.jar)
|
||||||
|
mkdir -p "${dir}/build/libs"
|
||||||
|
rm -f "${dir}/build/libs"/*.jar
|
||||||
|
cp "$jar_path" "${dir}/build/libs/$(basename "$jar_path")" || { err "No se pudo copiar el JAR a build/libs"; return 1; }
|
||||||
|
ok "Colocado en ${dir}/build/libs/$(basename "$jar_path")"
|
||||||
|
|
||||||
|
# 3. Limpiar Docker previo (por defecto sí)
|
||||||
|
if [[ -n "$clean" ]]; then
|
||||||
|
info "Limpiando Docker previo de ${svc} (contenedor + imagen)..."
|
||||||
|
docker rm -f "$(docker_name "$svc")" >/dev/null 2>&1 || true
|
||||||
|
docker rmi -f "bdt-${svc}:latest" >/dev/null 2>&1 || true
|
||||||
|
fi
|
||||||
|
|
||||||
|
# 4. Build + up
|
||||||
|
_docker_build_local "$svc" "$nocache" || { err "Build de ${svc} falló"; return 1; }
|
||||||
|
info "Recreando contenedor ${svc}..."
|
||||||
|
( cd "$INFRA_DIR" && $COMPOSE_CMD --profile apps --profile tools up -d --force-recreate "$svc" 2>&1 \
|
||||||
|
| while read -r l; do echo -e " ${GRAY}${l}${NC}"; done )
|
||||||
|
|
||||||
|
# 5. Health
|
||||||
|
local url; url="$(svc_health_url "$svc")"
|
||||||
|
if [[ -n "$url" ]]; then
|
||||||
|
info "Esperando salud de ${svc} (hasta 120s)..."
|
||||||
|
local tries=0 code="000"
|
||||||
|
while (( tries < 24 )); do
|
||||||
|
code=$(curl -s -o /dev/null -w "%{http_code}" --max-time 3 "$url" 2>/dev/null || echo "000")
|
||||||
|
[[ "$code" =~ ^(200|302|401)$ ]] && break
|
||||||
|
sleep 5; tries=$((tries+1))
|
||||||
|
done
|
||||||
|
cd "$BDT_ROOT" 2>/dev/null || true
|
||||||
|
[[ "$code" =~ ^(200|302|401)$ ]] && { ok "${svc} saludable (HTTP ${code})"; return 0; } || { err "${svc}: sin health OK (HTTP ${code}) — revisá: bdt logs ${svc} 100"; return 1; }
|
||||||
|
fi
|
||||||
|
cd "$BDT_ROOT" 2>/dev/null || true
|
||||||
|
ok "${svc} recreado"
|
||||||
|
}
|
||||||
|
|
||||||
#===============================================================================
|
#===============================================================================
|
||||||
# COMANDO: up - Levantar servicios
|
# COMANDO: up - Levantar servicios
|
||||||
#===============================================================================
|
#===============================================================================
|
||||||
@@ -1247,7 +1323,7 @@ _bdt_completions() {
|
|||||||
local cur="${COMP_WORDS[COMP_CWORD]}"
|
local cur="${COMP_WORDS[COMP_CWORD]}"
|
||||||
local prev="${COMP_WORDS[COMP_CWORD-1]}"
|
local prev="${COMP_WORDS[COMP_CWORD-1]}"
|
||||||
|
|
||||||
local commands="clone pull install build rebuild jar-deploy up down restart status logs health verify-db verify-api deploy construir publish env update creds clean setup menu help image-login image-build image-push image-pull image-deploy image-build-amd64 server-deploy"
|
local commands="clone pull install build rebuild jar-deploy deploy-jar up down restart status logs health verify-db verify-api deploy construir publish env update creds clean setup menu help image-login image-build image-push image-pull image-deploy image-build-amd64 server-deploy"
|
||||||
local services="frontend gateway service-bus canales-admin-web canales-worker apibank infrastructure database"
|
local services="frontend gateway service-bus canales-admin-web canales-worker apibank infrastructure database"
|
||||||
local up_targets="all infra apps tools frontend gateway canales-admin-web canales-worker service-bus postgres redis keycloak"
|
local up_targets="all infra apps tools frontend gateway canales-admin-web canales-worker service-bus postgres redis keycloak"
|
||||||
local envs="desarrollo calidad demo produccion"
|
local envs="desarrollo calidad demo produccion"
|
||||||
@@ -1978,6 +2054,9 @@ cmd_help() {
|
|||||||
echo -e " ${WHITE}jar-deploy${NC} <gateway|service-bus> [--build] [--no-cache]"
|
echo -e " ${WHITE}jar-deploy${NC} <gateway|service-bus> [--build] [--no-cache]"
|
||||||
echo -e " Sube TU jar local al server (DEPLOY_SERVER) → build/libs → build+up remoto."
|
echo -e " Sube TU jar local al server (DEPLOY_SERVER) → build/libs → build+up remoto."
|
||||||
echo -e " Útil para .133 (no usa el registry de Gitea). Requiere ~/.bdt/config + sudo remoto."
|
echo -e " Útil para .133 (no usa el registry de Gitea). Requiere ~/.bdt/config + sudo remoto."
|
||||||
|
echo -e " ${WHITE}deploy-jar${NC} <gateway|service-bus> [ruta-jar] [--cache] [--no-clean]"
|
||||||
|
echo -e " NO interactivo (CI/local en el server): mueve un jar externo → build/libs →"
|
||||||
|
echo -e " limpia docker → build --no-cache → up. Sin ruta usa el más reciente de JAR_INBOX (/tmp)."
|
||||||
echo ""
|
echo ""
|
||||||
echo -e " ${O3}${BOLD}JAR pre-compilado (image-build / image-build-amd64):${NC}"
|
echo -e " ${O3}${BOLD}JAR pre-compilado (image-build / image-build-amd64):${NC}"
|
||||||
echo -e " Gradle NO corre. Copiá el JAR compilado ANTES de buildear:"
|
echo -e " Gradle NO corre. Copiá el JAR compilado ANTES de buildear:"
|
||||||
@@ -2018,6 +2097,7 @@ case "$cmd" in
|
|||||||
build) cmd_build "$@" ;;
|
build) cmd_build "$@" ;;
|
||||||
rebuild|rebuild-nc) cmd_rebuild "$@" ;;
|
rebuild|rebuild-nc) cmd_rebuild "$@" ;;
|
||||||
jar-deploy|jardeploy) cmd_jar_deploy "$@" ;;
|
jar-deploy|jardeploy) cmd_jar_deploy "$@" ;;
|
||||||
|
deploy-jar|deployjar) cmd_deploy_jar "$@" ;;
|
||||||
up|start) cmd_up "$@" ;;
|
up|start) cmd_up "$@" ;;
|
||||||
down|stop) cmd_down "$@" ;;
|
down|stop) cmd_down "$@" ;;
|
||||||
restart) cmd_restart "$@" ;;
|
restart) cmd_restart "$@" ;;
|
||||||
|
|||||||
Reference in New Issue
Block a user