#!/usr/bin/env bash
set -euo pipefail

# ubicacion del proyecto
PROJECT_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"


# cargar las variables desde el env
ENV_FILE="$PROJECT_ROOT/.env.production"

# carga si el env existe (si existe estamos desde local)
if [ -f "$ENV_FILE" ]; then
  echo "📄 Cargando variables desde .env"
  set -a
  source "$ENV_FILE"
  set +a
else
  echo "ℹ️ No hay .env, usando variables de entorno"
fi

# validacion de las variables
: "${REGISTRY:?REGISTRY no definido}"
: "${IMAGE_NAME:?IMAGE_NAME no definido}"
: "${REGISTRY_USERNAME:?REGISTRY_USERNAME no definido}"
: "${REGISTRY_PASSWORD:?REGISTRY_PASSWORD no definido}"

IMAGE_FULL="${REGISTRY}/${IMAGE_NAME}"


# login al resgistry para pushear img
echo "🔐 Login en ${REGISTRY}"
docker login "${REGISTRY}" \
  -u "${REGISTRY_USERNAME}" \
  --password-stdin <<< "${REGISTRY_PASSWORD}"

# push al registry
echo "🚀 Pushing ${IMAGE_FULL}:latest"
docker push "${IMAGE_FULL}:${TAG}"

echo "🚀 Pushing ${IMAGE_FULL}:${VERSION}"
docker push "${IMAGE_FULL}:${VERSION}"

docker logout "${REGISTRY}"

echo "✅ Push a Registry completado"
