From 3ec836578351f365490be3a2f4011e99b2b2e83e Mon Sep 17 00:00:00 2001 From: Willi Thiel Date: Thu, 27 Aug 2026 11:21:53 +0200 Subject: [PATCH] =?UTF-8?q?Maven-Fehler=20in=20set-version.sh=20nicht=20me?= =?UTF-8?q?hr=20verschlucken:=20Version=20=C3=BCber=20-Doutput=20einsammel?= =?UTF-8?q?n=20statt=20=C3=BCber=20Kommandosubstitution?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit mvn schreibt seinen Fehlerreport auf stdout; in $( ) wird der komplett geschluckt und set -e bricht ohne eine einzige Logzeile ab. Genau so ist swaggerapi-Pipeline #17 gestorben - Exit 1 direkt nach dem Aufruf, ohne erkennbare Ursache. Zusätzlich eine Plausibilitätsprüfung auf ein Versionsmuster, weil help:evaluate bei unbekannten Ausdrücken eine Klartextmeldung in die Datei schreibt statt zu scheitern. Übernimmt den Stand aus ROAMSYS/WoodpeckerCI-Configuration (0567c82); die Datei ist jetzt wieder byte-identisch zur Vorlage. Damit kommt auch der Dependency-Cleanup über Submodul-POMs aus MISC-823 mit - hier ein No-Op, das Repo hat nur ein pom.xml. --- set-version.sh | 38 +++++++++++++++++++++++++++++++------- 1 file changed, 31 insertions(+), 7 deletions(-) mode change 100644 => 100755 set-version.sh diff --git a/set-version.sh b/set-version.sh old mode 100644 new mode 100755 index 21c3e7e..a182806 --- a/set-version.sh +++ b/set-version.sh @@ -26,11 +26,28 @@ if [ -z "$BUILD_NUMBER" ]; then BUILD_NUMBER=0 fi -POM_VERSION="$(mvn -B help:evaluate -Dexpression=project.version -q -DforceStdout)" +# Version ueber eine Datei einsammeln statt ueber $( ): Maven schreibt seinen +# Fehlerreport auf stdout, in einer Kommandosubstitution wird der komplett +# geschluckt und set -e bricht ohne eine einzige Logzeile ab. Mit -Doutput +# bleibt das Maven-Log im CI sichtbar. +POM_VERSION_FILE="target/pom-version.txt" +mkdir -p "$(dirname "$POM_VERSION_FILE")" +rm -f "$POM_VERSION_FILE" +mvn -B help:evaluate -Dexpression=project.version -Doutput="$POM_VERSION_FILE" +POM_VERSION="$(tr -d ' \t\r\n' < "$POM_VERSION_FILE")" if [ -z "$POM_VERSION" ]; then echo "Unable to determine Maven project version" >&2 exit 1 fi +# help:evaluate schreibt bei unbekannten Ausdruecken eine Klartextmeldung in die +# Datei statt zu scheitern - deshalb gegen ein Versionsmuster pruefen. +case "$POM_VERSION" in + [0-9]*) ;; + *) + echo "Unexpected Maven project version: '$POM_VERSION'" >&2 + exit 1 + ;; +esac BASE_VERSION="$POM_VERSION" case "$BASE_VERSION" in @@ -75,12 +92,19 @@ fi echo "Setting Maven project version to ${NEW_VERSION} (from ${POM_VERSION}) for branch ${BRANCH}" mvn -B versions:set -DnewVersion="$NEW_VERSION" -# dependency version cleanup -POM_FILE="pom.xml" +# dependency version cleanup (root pom.xml and submodule pom.xml files) +POM_FILES="pom.xml" +for SUBPOM in api/pom.xml interconnect/pom.xml; do + [ -f "$SUBPOM" ] && POM_FILES="$POM_FILES $SUBPOM" +done if printf '%s' "$BRANCH" | grep -Eq '^uat(-|$)'; then - echo "Modification of dependency versions: Replacing -SNAPSHOT → -RC" - sed -i 's/-SNAPSHOT/-RC/g' "$POM_FILE" + for POM in $POM_FILES; do + echo "Modification of dependency versions in $POM: Replacing -SNAPSHOT → -RC" + sed -i 's/-SNAPSHOT/-RC/g' "$POM" + done elif [ "$BRANCH" = "master" ]; then - echo "Modification of dependency versions: Removing -SNAPSHOT" - sed -i 's/-SNAPSHOT//g' "$POM_FILE" + for POM in $POM_FILES; do + echo "Modification of dependency versions in $POM: Removing -SNAPSHOT" + sed -i 's/-SNAPSHOT//g' "$POM" + done fi