Merge "Adding simple checks examination of data/logs after robot suites"
[releng/builder.git] / jjb / include-raw-deploy-archives.sh
index 56a77eaea65a6f25943cbc5d05d46542f5715a35..53d2991a54f02308ff1581b09ba1af72cde8722c 100644 (file)
@@ -1,6 +1,27 @@
 #!/bin/bash
+
+set +e  # Do not affect the build result if some part of archiving fails.
+
+# Print out git status at the end of the build before we archive if $WORKSPACE
+# is a git repo.
+if [ -d $WORKSPACE/.git ]; then
+    echo ""
+    echo "----------> Git Status Report"
+    git status
+fi
+
+echo ""
+echo "----------> Archiving build to logs server"
+# Configure wget to not print download status when we download logs or when
+# Jenkins is installing Maven (To be clear this is the Jenkins Maven plugin
+# using a shell script itself that we are unable to modify directly to affect
+# wget).
+echo "verbose=off" > ~/.wgetrc
+
 ARCHIVES_DIR="$JENKINS_HOSTNAME/$JOB_NAME/$BUILD_NUMBER"
-LOGS_SERVER="https://logs.opendaylight.org"
+[ "$LOGS_SERVER" ] || LOGS_SERVER="https://logs.opendaylight.org"
+[ "$LOGS_REPO_URL" ] || LOGS_REPO_URL="https://nexus.opendaylight.org/service/local/repositories/logs"
+
 echo "Build logs: <a href=\"$LOGS_SERVER/$SILO/$ARCHIVES_DIR\">$LOGS_SERVER/$SILO/$ARCHIVES_DIR</a>"
 
 mkdir .archives
@@ -37,7 +58,7 @@ cat > deploy-archives.xml <<EOF
             </goals>
             <configuration>
               <serverId>opendaylight-log-archives</serverId>
-              <repositoryUrl>https://nexus.opendaylight.org/service/local/repositories/logs/content-compressed</repositoryUrl>
+              <repositoryUrl>$LOGS_REPO_URL/content-compressed</repositoryUrl>
               <file>archives.zip</file>
               <repositoryPath>$SILO</repositoryPath>
             </configuration>
@@ -51,10 +72,10 @@ EOF
 
 mkdir -p $ARCHIVES_DIR
 mkdir -p $WORKSPACE/archives
-if [ ! -z $ARCHIVE_ARTIFACTS ]; then
+if [ ! -z "${{ARCHIVE_ARTIFACTS}}" ]; then
     pushd $WORKSPACE
     shopt -s globstar  # Enable globstar to copy archives
-    archive_artifacts=$(echo $ARCHIVE_ARTIFACTS)
+    archive_artifacts=$(echo ${{ARCHIVE_ARTIFACTS}})
     for f in $archive_artifacts; do
         echo "Archiving $f"
         mkdir -p $WORKSPACE/archives/$(dirname $f)
@@ -63,23 +84,39 @@ if [ ! -z $ARCHIVE_ARTIFACTS ]; then
     shopt -u globstar  # Disable globstar once archives are copied
     popd
 fi
+
+
 # Ignore logging if archives doesn't exist
 mv $WORKSPACE/archives/ $ARCHIVES_DIR > /dev/null 2>&1
 touch $ARCHIVES_DIR/_build-details.txt
 echo "build-url: ${{BUILD_URL}}" >> $ARCHIVES_DIR/_build-details.txt
-env > $ARCHIVES_DIR/_build-enviroment-variables.txt
+env | grep -v PASSWORD > $ARCHIVES_DIR/_build-enviroment-variables.txt
+
+# capture system info
+touch $ARCHIVES_DIR/_sys-info.txt
+{{
+    echo -e "uname -a:\n `uname -a` \n"
+    echo -e "df -h:\n `df -h` \n"
+    echo -e "free -m:\n `free -m` \n"
+    echo -e "nproc:\n `nproc` \n"
+    echo -e "lscpu:\n `lscpu` \n"
+    echo -e "ip addr:\n  `/sbin/ip addr` \n"
+}} 2>&1 | tee -a $ARCHIVES_DIR/_sys-info.txt
 
 # Magic string used to trim console logs at the appropriate level during wget
 echo "-----END_OF_BUILD-----"
-wget -O $ARCHIVES_DIR/_console-output.log ${{BUILD_URL}}consoleText
-sed -i '/^-----END_OF_BUILD-----$/,$d' $ARCHIVES_DIR/_console-output.log
+wget -O $ARCHIVES_DIR/console.log ${{BUILD_URL}}consoleText
+wget -O $ARCHIVES_DIR/console-timestamp.log "${{BUILD_URL}}/timestamps?time=HH:mm:ss&appendLog"
+sed -i '/^-----END_OF_BUILD-----$/,$d' $ARCHIVES_DIR/console.log
+sed -i '/^.*-----END_OF_BUILD-----$/,$d' $ARCHIVES_DIR/console-timestamp.log
 
 gzip $ARCHIVES_DIR/*.txt $ARCHIVES_DIR/*.log
-# find and gzip all text files
-find $ARCHIVES_DIR -name "*.txt" \
-                -o -name "*.log" \
-                -o -name "*.html" \
-                | xargs gzip
+# find and gzip any 'text' files
+find $ARCHIVES_DIR -type f -print0 \
+                | xargs -0r file \
+                | egrep -e ':.*text.*' \
+                | cut -d: -f1 \
+                | xargs -d'\n' -r gzip
 
-zip -r archives.zip $JENKINS_HOSTNAME/
+zip -r archives.zip $JENKINS_HOSTNAME/ > $ARCHIVES_DIR/_archives-zip.log
 du -sh archives.zip