feat: badge versione build in GUI + build.sh con auto-bump
- VERSION (1.0.0) + build.sh: bump patch/minor/major e deploy via docker compose - Dockerfile: ARG/ENV APP_VERSION + BUILD_TIME (iniettati come build-arg) - version.build_info(): env in Docker, fallback file VERSION + '(local)' in dev - GET /api/version; badge #appVersionPill nell'header (tooltip = build time) - test_version.py: env vs fallback Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
1 parent
a88a064aa8
commit
cf726b479e
8 files changed
+126
-1
No files matched your search
@@ -0,0 +1,40 @@
|
||||
#!/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})"
|
||||
Reference in new issue
Block a user