Detect if staging has failed 68/60568/1
authorThanh Ha <thanh.ha@linuxfoundation.org>
Wed, 19 Jul 2017 14:57:10 +0000 (10:57 -0400)
committerThanh Ha <thanh.ha@linuxfoundation.org>
Wed, 19 Jul 2017 14:57:12 +0000 (10:57 -0400)
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>
jjb/autorelease/include-raw-autorelease-maven-deploy.sh

index 8479b95a203cc3083897b30c69b173b0d4bef2a7..33c835b81668e8133310eb3a22fa466014784f23 100644 (file)
@@ -9,6 +9,8 @@
 # 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/
@@ -35,7 +37,7 @@ rsync -avz --remove-source-files \
     -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
@@ -46,3 +48,9 @@ do
         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