diff --git a/release.sh b/release.sh new file mode 100755 index 0000000..d074c44 --- /dev/null +++ b/release.sh @@ -0,0 +1,39 @@ +#!/usr/bin/env bash +set -euo pipefail +docker login docker-repo.hacker-net.de +IMAGE="docker-repo.hacker-net.de/imap-mailfilter" + +if [[ $# -ne 1 ]]; then + echo "Usage: $0 " >&2 + echo "Beispiel: $0 2.1" >&2 + exit 1 +fi + +VERSION="$1" + +if [[ ! "$VERSION" =~ ^[0-9]+(\.[0-9]+)*$ ]]; then + echo "Fehler: Version '$VERSION' hat kein gültiges Format (z.B. 2.1 oder 2.1.0)" >&2 + exit 1 +fi + +# Warnung bei uncommitteten Änderungen (kein Abbruch) +if [[ -d .git ]] && ! git diff-index --quiet HEAD -- 2>/dev/null; then + echo "Warnung: uncommittete Änderungen im Repo. Baue trotzdem." >&2 + git status --short >&2 + echo >&2 +fi + +echo "==> Baue $IMAGE:$VERSION und :latest" +docker build \ + -t "$IMAGE:$VERSION" \ + -t "$IMAGE:latest" \ + . + +echo "==> Pushe $IMAGE:$VERSION" +docker push "$IMAGE:$VERSION" + +echo "==> Pushe $IMAGE:latest" +docker push "$IMAGE:latest" + +echo +echo "Release fertig: $IMAGE:$VERSION (und :latest)"