chore: remove output of script sha1sum from jjb scripts
[ci-management.git] / jjb / scripts / vpp / debug-build.sh
index e7f1852..6d9fabc 100644 (file)
@@ -1,6 +1,6 @@
 #!/bin/bash
 
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2021 Cisco and/or its affiliates.
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # You may obtain a copy of the License at:
 
 echo "---> jjb/scripts/vpp/debug-build.sh"
 
-set -xe -o pipefail
+set -euxo pipefail
 
+line="*************************************************************************"
 OS_ID=$(grep '^ID=' /etc/os-release | cut -f2- -d= | sed -e 's/\"//g')
 OS_VERSION_ID=$(grep '^VERSION_ID=' /etc/os-release | cut -f2- -d= | sed -e 's/\"//g')
 OS_ARCH=$(uname -m)
-
-echo "sha1sum of this script: ${0}"
-sha1sum $0
+DRYRUN="${DRYRUN:-}"
+MAKE_PARALLEL_JOBS="${MAKE_PARALLEL_JOBS:-}"
+BUILD_RESULT="SUCCESSFULLY COMPLETED"
+BUILD_ERROR=""
+RETVAL="0"
 
 # run with ASAN on
+# disable ASAN for now in the debug build - it's broken with PAPI
+# in make test transitioning to unix sockets
 # export VPP_EXTRA_CMAKE_ARGS='-DVPP_ENABLE_SANITIZE_ADDR=ON'
 
-# clang is not working with ASAN right now - see change 27268
-# apparently gcc neither...
-# export CC=gcc
-
-make UNATTENDED=yes install-dep
-make UNATTENDED=yes install-ext-deps
-make UNATTENDED=yes build
-make UNATTENDED=yes TEST_JOBS=auto test-debug
+make_build_test_debug() {
+    if ! make UNATTENDED=yes install-dep ; then
+        BUILD_ERROR="FAILED 'make install-dep'"
+        return
+    fi
+    if ! make UNATTENDED=yes install-ext-deps ; then
+        BUILD_ERROR="FAILED 'make install-ext-deps'"
+        return
+    fi
+    if ! make UNATTENDED=yes build ; then
+        BUILD_ERROR="FAILED 'make build'"
+        return
+    fi
+    if [ "${OS_ID}-${OS_VERSION_ID}" == "${MAKE_TEST_OS}" ] ; then
+        if [ -n "${MAKE_PARALLEL_JOBS}" ] ; then
+            TEST_JOBS="${MAKE_PARALLEL_JOBS}"
+            echo "Testing VPP with ${TEST_JOBS} cores."
+        else
+            TEST_JOBS="auto"
+            echo "Testing VPP with automatically calculated number of cores. " \
+                "See test logs for the exact number."
+        fi
+        if ! make UNATTENDED=yes TEST_JOBS="$TEST_JOBS" test-debug ; then
+            BUILD_ERROR="FAILED 'make UNATTENDED=yes TEST_JOBS=$TEST_JOBS test-debug'"
+            return
+        fi
+    else
+        echo "Skip running 'make test-debug' on ${OS_ID}-${OS_VERSION_ID}"
+    fi
+}
 
-echo "*******************************************************************"
-echo "* VPP debug/asan test BUILD on ${OS_ID^^}-${OS_VERSION_ID}-${OS_ARCH^^} SUCCESSFULLY COMPLETED"
-echo "*******************************************************************"
+# clang is not working with ASAN right now - see change 27268
+# also, it does not work with gcc-7, we need gcc-8 at least
+# on ubuntu 20.04 executor the gcc is gcc9
+if [ "${DRYRUN,,}" != "true" ] ; then
+    make_build_test_debug
+fi
+if [ -n "$BUILD_ERROR" ] ; then
+    BUILD_RESULT="$BUILD_ERROR"
+    RETVAL="1"
+fi
+echo -e "\n$line\n* VPP ${OS_ID^^}-${OS_VERSION_ID}-${OS_ARCH^^} DEBUG BUILD $BUILD_RESULT\n$line\n"
+exit $RETVAL