Mise à jour automatique (Gitea + Watchtower) et conteneurisation Docker
- Détection de version via l'API Gitea, application via Watchtower - Router système, UI admin (intégrations), bandeau de mise à jour - Dockerfile multi-étapes, docker-compose, scripts/release.sh - Version centralisée dans app/version.py (pyproject ou OHM_VERSION au build)
This commit is contained in:
Executable
+44
@@ -0,0 +1,44 @@
|
||||
#!/usr/bin/env bash
|
||||
# Publie une version d'OhmStreaming :
|
||||
# bump de version → commit + tag git → build de l'image Docker → push registre Gitea.
|
||||
#
|
||||
# Usage : ./scripts/release.sh 0.2.0
|
||||
# Option : OHM_REGISTRY=git.lanro.eu/roman/ohm_streaming (défaut) pour viser un autre registre.
|
||||
set -euo pipefail
|
||||
|
||||
VERSION="${1:?Usage : ./scripts/release.sh <version> (ex. 0.2.0)}"
|
||||
REGISTRY="${OHM_REGISTRY:-git.lanro.eu/roman/ohm_streaming}"
|
||||
cd "$(dirname "$0")/.."
|
||||
|
||||
[[ "$VERSION" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]] || { echo "✖ « $VERSION » n'est pas un semver X.Y.Z"; exit 1; }
|
||||
|
||||
if [[ -n "$(git status --porcelain)" ]]; then
|
||||
echo "✖ Dépôt sale — committez ou rangez vos modifications avant de publier :"
|
||||
git status --short
|
||||
exit 1
|
||||
fi
|
||||
|
||||
TAG="v$VERSION"
|
||||
if git rev-parse -q --verify "refs/tags/$TAG" >/dev/null; then
|
||||
echo "✖ Le tag $TAG existe déjà"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "▶ 1/3 Version $VERSION dans pyproject.toml"
|
||||
uv version "$VERSION"
|
||||
git add pyproject.toml uv.lock
|
||||
git commit -m "v$VERSION"
|
||||
|
||||
echo "▶ 2/3 Tag et push git"
|
||||
git tag "$TAG"
|
||||
git push origin HEAD
|
||||
git push origin "$TAG"
|
||||
|
||||
echo "▶ 3/3 Image Docker → $REGISTRY"
|
||||
docker build --build-arg VERSION="$VERSION" -t "$REGISTRY:$VERSION" -t "$REGISTRY:latest" .
|
||||
docker push "$REGISTRY:$VERSION"
|
||||
docker push "$REGISTRY:latest"
|
||||
|
||||
echo
|
||||
echo "✔ v$VERSION publiée ($REGISTRY:$VERSION et :latest)"
|
||||
echo " Les instances la détecteront via Admin → Mise à jour → « Vérifier »."
|
||||
Reference in New Issue
Block a user