diff --git a/docker_push.sh b/docker_push.sh index da8ba5f..fa69887 100755 --- a/docker_push.sh +++ b/docker_push.sh @@ -5,18 +5,16 @@ set -euo pipefail readonly SCRIPT_DIR="$(CDPATH= cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd)" # Paket-Registry des Gitea auf gitea.appcreation.de; der Pfad ist dort # //. -readonly REGISTRY_IMAGE="gitea.appcreation.de/appcreation/swyxweb" -readonly BACKEND_DIR="${SCRIPT_DIR}/backend" +readonly REGISTRY_IMAGE="gitea.appcreation.de/sven/swyxweb" readonly PLATFORM="linux/amd64" usage() { cat <<'EOF' Verwendung: - ./docker_push.sh [x.y.z] [--dry-run] + ./docker_push.sh [--dry-run] Beispiel: ./docker_push.sh 0.9.13 - ./docker_push.sh ./docker_push.sh 0.9.13 --dry-run # nur bauen, nicht pushen Voraussetzungen: @@ -24,7 +22,8 @@ Voraussetzungen: - Login zur Registry wurde bereits ausgeführt: docker login gitea.appcreation.de -Ohne Versionsargument wird die Version aus backend/pom.xml verwendet. +Die Versionsnummer ist Pflicht: Sie wird zum Tag des Images und muss damit +bewusst gesetzt werden. Sie wird nicht aus der pom.xml abgeleitet. Gebaut wird das Dockerfile im Wurzelverzeichnis: Es übersetzt Frontend *und* Backend selbst, ein vorheriger lokaler Maven- oder npm-Lauf ist also nicht @@ -41,21 +40,6 @@ require_command() { command -v "$1" >/dev/null 2>&1 || fail "'$1' wurde nicht gefunden." } -# Die Version steht in backend/pom.xml; ausgelesen wird sie mit dem Maven- -# Wrapper des Backends (backend/mvnw), nicht mit einem global installierten Maven. -resolve_pom_version() { - [[ -x "${BACKEND_DIR}/mvnw" ]] || fail "'${BACKEND_DIR}/mvnw' wurde nicht gefunden oder ist nicht ausführbar." - - local version - version="$( - cd "${BACKEND_DIR}" && ./mvnw -q -DforceStdout help:evaluate -Dexpression=project.version \ - | awk 'NF { last = $0 } END { print last }' - )" - - [[ -n "${version}" ]] || fail "Version konnte nicht aus der pom.xml ermittelt werden." - echo "${version}" -} - VERSION="" DRY_RUN=false @@ -78,11 +62,14 @@ for arg in "$@"; do esac done -[[ -n "${VERSION}" ]] || VERSION="$(resolve_pom_version)" +if [[ -z "${VERSION}" ]]; then + usage >&2 + echo >&2 + fail "Es muss eine Versionsnummer angegeben werden, z. B. ./docker_push.sh 0.9.13" +fi -# -SNAPSHOT ist zugelassen, weil die pom.xml zurzeit 0.0.1-SNAPSHOT trägt. -if [[ ! "${VERSION}" =~ ^[0-9]+\.[0-9]+\.[0-9]+(-SNAPSHOT)?$ ]]; then - fail "Versionsnummer muss das Format x.y.z oder x.y.z-SNAPSHOT haben (war: '${VERSION}')." +if [[ ! "${VERSION}" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]; then + fail "Versionsnummer muss das Format x.y.z haben (war: '${VERSION}')." fi require_command docker