The mvn command always exits 0 when using the staging plugin to stage a
Nexus repository. Due to this when failure occurs we do not currently
detect it. This patch parses the staging log file for any lines starting
with [ERROR] (typical of mvn errors) and exits the script with a failure
code if detected to make Jenkins fail the build.
Issue: RELENG-218
Change-Id: I5ddc56d88ca23baada1a8044ef9dc26345a583f9
Signed-off-by: Thanh Ha <thanh.ha@linuxfoundation.org>
# http://www.eclipse.org/legal/epl-v10.html
##############################################################################
# http://www.eclipse.org/legal/epl-v10.html
##############################################################################
+STAGING_LOG="$WORKSPACE/deploy-staged-repository.log"
+
# Assuming that mvn deploy created the hide/from/pom/files/stage directory.
cd hide/from/pom/files || exit 1
mkdir -p m2repo/org/opendaylight/
# Assuming that mvn deploy created the hide/from/pom/files/stage directory.
cd hide/from/pom/files || exit 1
mkdir -p m2repo/org/opendaylight/
-DstagingProfileId="$NEXUS_STAGING_PROFILE" \
-DserverId="$NEXUS_STAGING_SERVER_ID" \
-s "$SETTINGS_FILE" \
-DstagingProfileId="$NEXUS_STAGING_PROFILE" \
-DserverId="$NEXUS_STAGING_SERVER_ID" \
-s "$SETTINGS_FILE" \
- -gs "$GLOBAL_SETTINGS_FILE" | tee "$WORKSPACE/deploy-staged-repository.log"
+ -gs "$GLOBAL_SETTINGS_FILE" | tee "$STAGING_LOG"
# Log all files larger than 200 MB into large-files.log
while IFS= read -r -d '' file
# Log all files larger than 200 MB into large-files.log
while IFS= read -r -d '' file
echo "$FILE_SIZE $file" >> "$WORKSPACE/large-files.log"
fi
done < <(find "$(pwd)/m2repo" -type f -print0)
echo "$FILE_SIZE $file" >> "$WORKSPACE/large-files.log"
fi
done < <(find "$(pwd)/m2repo" -type f -print0)
+
+# Detect if staging failed: mvn always exits 0 even if staging failed.
+if grep '^\[ERROR\]' "$STAGING_LOG"; then
+ echo "Error creating staging repo. Refer to logs above for details."
+ exit 1
+fi