This commit is contained in:
root
2025-09-24 15:31:31 +00:00
parent 2e93449b55
commit 51e022ae52
2 changed files with 68 additions and 1 deletions
+58
View File
@@ -0,0 +1,58 @@
#!/bin/bash
set -e
# --- Konfiguration ---
GHCR_USERNAME="<dein-github-username>"
REPO_NAME="<dein-repo-name>"
# --- Branch prüfen ---
BRANCH=$(git rev-parse --abbrev-ref HEAD)
if [[ "$BRANCH" != "master" ]]; then
echo "Fehler: Du musst auf 'master' sein, um ein Release zu machen."
exit 1
fi
# --- Versionsnummer abfragen ---
while true; do
read -p "Bitte Versionsnummer für das Release eingeben (z.B. v0.2.0): " VERSION_TAG
if [[ -n "$VERSION_TAG" ]]; then break; else echo "Versionsnummer darf nicht leer sein."; fi
done
# --- Git: Pull und Merge sicherstellen ---
git pull origin master
# --- Git: Commit ausstehender Änderungen ---
git add .
read -p "Commit-Nachricht eingeben (default: 'Release $VERSION_TAG'): " COMMIT_MSG
COMMIT_MSG=${COMMIT_MSG:-"Release $VERSION_TAG"}
git commit -m "$COMMIT_MSG" || echo "Keine Änderungen zum Committen."
# --- Git: Tag setzen ---
if git rev-parse "$VERSION_TAG" >/dev/null 2>&1; then
echo "Tag $VERSION_TAG existiert bereits. Bitte zuerst löschen oder neuen Tag wählen."
exit 1
fi
git tag -a "$VERSION_TAG" -m "Release $VERSION_TAG"
# --- Git: Push master + Tag ---
git push origin master
git push origin "$VERSION_TAG"
echo "Tag $VERSION_TAG gesetzt und auf master gepusht."
# --- Docker: Login ---
if [ -z "$CR_PAT" ]; then
echo "CR_PAT (GitHub Token) nicht gesetzt! Bitte export CR_PAT=<token>"
exit 1
fi
echo $CR_PAT | docker login ghcr.io -u $GHCR_USERNAME --password-stdin
# --- Docker: Build & Tag ---
docker build -t ghcr.io/$GHCR_USERNAME/$REPO_NAME:$VERSION_TAG .
docker tag ghcr.io/$GHCR_USERNAME/$REPO_NAME:$VERSION_TAG ghcr.io/$GHCR_USERNAME/$REPO_NAME:latest
# --- Docker: Push ---
docker push ghcr.io/$GHCR_USERNAME/$REPO_NAME:$VERSION_TAG
docker push ghcr.io/$GHCR_USERNAME/$REPO_NAME:latest
echo "Release $VERSION_TAG erfolgreich auf master + GHCR gepusht!"