#!/bin/bash
-ARCHIVES_DIR="$JOB_NAME/`date +'%Y-%m-%d.%H%M%S'`-$BUILD_NUMBER-$BUILD_CAUSE"
+
+set +e # Do not affect the build result if some part of archiving fails.
+
+ARCHIVES_DIR="$JENKINS_HOSTNAME/$JOB_NAME/$BUILD_NUMBER"
LOGS_SERVER="https://logs.opendaylight.org"
echo "Build logs: <a href=\"$LOGS_SERVER/$SILO/$ARCHIVES_DIR\">$LOGS_SERVER/$SILO/$ARCHIVES_DIR</a>"
EOF
mkdir -p $ARCHIVES_DIR
-mv $WORKSPACE/archives/ $ARCHIVES_DIR
+mkdir -p $WORKSPACE/archives
+if [ ! -z "${{ARCHIVE_ARTIFACTS}}" ]; then
+ pushd $WORKSPACE
+ shopt -s globstar # Enable globstar to copy archives
+ archive_artifacts=$(echo ${{ARCHIVE_ARTIFACTS}})
+ for f in $archive_artifacts; do
+ echo "Archiving $f"
+ mkdir -p $WORKSPACE/archives/$(dirname $f)
+ mv $f $WORKSPACE/archives/$f
+ done
+ 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
+
+# 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
-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
+sed -i '/^-----END_OF_BUILD-----$/,$d' $ARCHIVES_DIR/_console-output.log
-zip -r archives.zip $JOB_NAME/
+gzip $ARCHIVES_DIR/*.txt $ARCHIVES_DIR/*.log
+# 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
-# Notify Gerrit where logs are located
-if [ -n "$GERRIT_PATCHSET_REVISION" ]; then
- LOG_MESSAGE="Logs located at https://nexus.opendaylight.org/content/sites/logs/$SILO/$ARCHIVES_DIR/"
- ssh -p 29418 git.opendaylight.org gerrit review -m "$LOG_MESSAGE" $GERRIT_PATCHSET_REVISION
-fi
+zip -r archives.zip $JENKINS_HOSTNAME/
+du -sh archives.zip