#!/usr/bin/env bash # Build + deploy di presa-mano con auto-bump della versione. # # ./build.sh → patch++ (1.0.1 -> 1.0.2) # ./build.sh minor → minor++ (1.0.2 -> 1.1.0) # ./build.sh major → major++ (1.1.0 -> 2.0.0) # # La nuova versione + l'ora di build vengono iniettate nell'immagine come # build-arg e mostrate nel badge in GUI. Il file VERSION viene riscritto ma NON # committato automaticamente (lo committi tu con le altre modifiche). set -euo pipefail SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" COMPOSE_DIR="$(dirname "$SCRIPT_DIR")" # docker-compose.yml sta un livello sopra VERSION_FILE="$SCRIPT_DIR/VERSION" [ -f "$VERSION_FILE" ] || echo "1.0.0" > "$VERSION_FILE" cur="$(tr -d '[:space:]' < "$VERSION_FILE")" IFS='.' read -r major minor patch <<< "$cur" major="${major:-1}"; minor="${minor:-0}"; patch="${patch:-0}" case "${1:-patch}" in major) major=$((major + 1)); minor=0; patch=0 ;; minor) minor=$((minor + 1)); patch=0 ;; patch) patch=$((patch + 1)) ;; *) echo "uso: $0 [major|minor|patch]" >&2; exit 1 ;; esac new="${major}.${minor}.${patch}" echo "$new" > "$VERSION_FILE" build_time="$(date -u +"%Y-%m-%d %H:%M UTC")" echo "→ build V${new} (${build_time})" cd "$COMPOSE_DIR" docker compose build \ --build-arg APP_VERSION="$new" \ --build-arg BUILD_TIME="$build_time" \ presa-mano docker compose up -d presa-mano echo "✓ deployed V${new} (${build_time})"