#!/usr/bin/env bash # Cerbero MCP — build & push immagine unica V2.0.0 al registry Gitea. # # Pre-requisiti: # - docker # - PAT Gitea con scope `write:package` in env $GITEA_PAT # - $GITEA_USER (default: adriano) # # Uso: # ./scripts/build-push.sh # VERSION=2.0.1 ./scripts/build-push.sh set -euo pipefail REGISTRY="${REGISTRY:-git.tielogic.xyz}" IMAGE_PREFIX="${IMAGE_PREFIX:-$REGISTRY/adriano/cerbero-mcp}" GITEA_USER="${GITEA_USER:-adriano}" VERSION="${VERSION:-2.0.0}" SHA="$(git rev-parse --short HEAD)" command -v docker >/dev/null || { echo "FATAL: docker non installato"; exit 1; } # Login solo se non già autenticato sul registry. if grep -q "\"$REGISTRY\"" ~/.docker/config.json 2>/dev/null; then echo "=== docker già loggato su $REGISTRY (skip login) ===" elif [ -n "${GITEA_PAT:-}" ]; then echo "=== docker login $REGISTRY ===" echo "$GITEA_PAT" | docker login "$REGISTRY" -u "$GITEA_USER" --password-stdin else echo "FATAL: non autenticato su $REGISTRY e GITEA_PAT non settata." echo " Esegui una volta: docker login $REGISTRY -u $GITEA_USER" exit 1 fi TAG_VERSION="$IMAGE_PREFIX:$VERSION" TAG_LATEST="$IMAGE_PREFIX:latest" TAG_SHA="$IMAGE_PREFIX:sha-$SHA" echo "=== build cerbero-mcp:$VERSION ===" docker build -t "$TAG_VERSION" -t "$TAG_LATEST" -t "$TAG_SHA" . echo "=== push ===" for tag in "$TAG_VERSION" "$TAG_LATEST" "$TAG_SHA"; do docker push "$tag" echo " pushed: $tag" done echo echo "=== Done (commit $SHA, version $VERSION) ===" echo "VPS Watchtower farà pull entro WATCHTOWER_POLL_INTERVAL (default 5min)."