X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=jjb%2Fscripts%2Fpost_build_deploy_archives.sh;h=a332f21e5915ce2488e0598764728518daeaa260;hb=6891d2da078aaf02b55418abd3fa8331dd570e92;hp=79fa05a106528a3273b59bcd8fc8805d051d1002;hpb=20320eefc4b796dcfb5d24de1244ab724b8eb3be;p=ci-management.git diff --git a/jjb/scripts/post_build_deploy_archives.sh b/jjb/scripts/post_build_deploy_archives.sh index 79fa05a10..a332f21e5 100755 --- a/jjb/scripts/post_build_deploy_archives.sh +++ b/jjb/scripts/post_build_deploy_archives.sh @@ -19,6 +19,10 @@ set +e # Do not affect the build result if some part of archiving fails. WS_ARCHIVES_DIR="$WORKSPACE/archives" BUILD_ENV_LOG="$WS_ARCHIVES_DIR/_build-enviroment-variables.log" +if curl --output robot-plugin.zip "$BUILD_URL/robot/report/*zip*/robot-plugin.zip"; then + unzip -d ./archives robot-plugin.zip +fi + # Generate gdb-command script to output vpp stack traceback from core files. gdb_cmdfile="/tmp/gdb-commands" cat >$gdb_cmdfile <<'__END__' @@ -48,6 +52,9 @@ STACKTRACE="" # Returns stacktrace filename in STACKTRACE generate_vpp_stacktrace_and_delete_core() { local corefile="$1" + echo "Uncompressing core file $file" + gunzip "$corefile" + corefile="${corefile::(-3)}" if grep -qe 'debug' <<< "$WORKSPACE" ; then local binfile="$WORKSPACE/build-root/install-vpp_debug-native/vpp/bin/vpp" else @@ -61,8 +68,9 @@ generate_vpp_stacktrace_and_delete_core() { echo "Removing core file: $corefile" rm -f "$corefile" # Dump stacktrace to console log - if [ -f $STACKTRACE ] ; then + if [ -f "$STACKTRACE" ] ; then echo -e "\n=====[ $STACKTRACE ]=====\n$(cat $STACKTRACE)\n=====[ $STACKTRACE ]=====\n" + gzip "$STACKTRACE" else echo "Stacktrace file not generated!" STACKTRACE="" @@ -71,56 +79,15 @@ generate_vpp_stacktrace_and_delete_core() { mkdir -p "$WS_ARCHIVES_DIR" -# Log the build environment variables -echo "Logging build environment variables in '$BUILD_ENV_LOG'..." -env > $BUILD_ENV_LOG - -echo "ARCHIVE_ARTIFACTS = '$ARCHIVE_ARTIFACTS'" -if [ -n "${ARCHIVE_ARTIFACTS:-}" ] ; then - pushd $WORKSPACE - shopt -s globstar # Enable globstar to copy archives - for file in $ARCHIVE_ARTIFACTS ; do - if [ -f "$file" ] ; then - fname="$(basename $file)" - # Decompress core.gz file - if grep -qe '^core.*\.gz$' <<<"$fname" ; then - echo "Uncompressing core file $file" - gunzip "$file" - file="${file::(-3)}" - fi - # Convert core file to stacktrace - if [ "${fname::4}" = "core" ] ; then - generate_vpp_stacktrace_and_delete_core $file - [ -z "$STACKTRACE" ] && continue - file=$STACKTRACE - fi - # Set destination filename - if [ "${file::26}" = "/tmp/vpp-failed-unittests/" ] ; then - destfile=$WS_ARCHIVES_DIR${file:25} - else - destfile=$WS_ARCHIVE_DIR$file - fi - echo "Archiving '$file' to '$destfile'" - destdir="$(dirname $destfile)" - mkdir -p $destdir - mv -f $file $destfile - else - echo "Not archiving '$file'" - if ! grep -qe '*' <<<"$file" ; then - echo "WARNING: No artifacts detected in ARCHIVE_ARTIFACTS '$ARCHIVE_ARTIFACTS'!" - fi - fi +# generate stack trace for VPP core files for upload instead of core file. +if [ -d "$WORKSPACE/build-root" ] ; then + for file in $(find $WS_ARCHIVES_DIR -type f -name 'core*.gz') ; do + generate_vpp_stacktrace_and_delete_core $file done - shopt -u globstar # Disable globstar - popd fi -# find and gzip any 'text' files -find $WS_ARCHIVES_DIR -type f -print0 \ - | xargs -0r file \ - | egrep -e ':.*text.*' \ - | cut -d: -f1 \ - | xargs -d'\n' -r gzip +# Remove any socket files in archive +find $WS_ARCHIVES_DIR -type s -exec rm -rf {} \; echo "Workspace archived artifacts:" ls -alR $WS_ARCHIVES_DIR