jjb: Do not test python2 agents in lttng-tools release builds
[lttng-ci.git] / scripts / lttng-tools / release.sh
index a2b61ca77e09dfcaa5a8120e7ef9f002d6e5f333..430ab4e59259cf763a27c7112737d9b6c441a3d0 100644 (file)
@@ -1,4 +1,4 @@
-#!/bin/bash -exu
+#!/bin/bash
 #
 # Copyright (C) 2015 Jonathan Rajotte-Julien <jonathan.rajotte-julien@efficios.com>
 # Copyright (C) 2020 Michael Jeanson <mjeanson@efficios.com>
@@ -16,6 +16,8 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
+set -exu
+
 # Version compare functions
 vercomp () {
     set +u
@@ -71,6 +73,9 @@ verne() {
 
 export TERM="xterm-256color"
 
+# Required variables
+WORKSPACE=${WORKSPACE:-}
+
 DEPS_INC="$WORKSPACE/deps/build/include"
 DEPS_LIB="$WORKSPACE/deps/build/lib"
 DEPS_PKGCONFIG="$DEPS_LIB/pkgconfig"
@@ -84,11 +89,13 @@ export CPPFLAGS="-I$DEPS_INC"
 export LDFLAGS="-L$DEPS_LIB"
 
 export JAVA_HOME="/usr/lib/jvm/default-java"
-export CLASSPATH="$DEPS_JAVA/*:/usr/share/java/*"
+export CLASSPATH="$DEPS_JAVA/*:/usr/share/java/log4j-core.jar:/usr/share/java/log4j-1.2.jar"
 
 SRCDIR="$WORKSPACE/src/lttng-tools"
+OUTDIR="$WORKSPACE/out"
 TAPDIR="$WORKSPACE/tap"
-PREFIX="$WORKSPACE/out"
+
+failed_tests=0
 
 # Create tmp directory
 TMPDIR="$WORKSPACE/tmp"
@@ -114,26 +121,23 @@ fi
 export BABELTRACE_PLUGIN_PATH="$DEPS_LIB/babeltrace2/plugins/"
 export LIBBABELTRACE2_PLUGIN_PROVIDER_DIR="$DEPS_LIB/babeltrace2/plugin-providers/"
 
-PYTHON2=python2
 PYTHON3=python3
 
 # Set default python to python3 for the bindings
 export PYTHON="$PYTHON3"
 export PYTHON_CONFIG="/usr/bin/$PYTHON3-config"
 
-P2_VERSION=$($PYTHON2 -c "import sys;print(sys.version[:3])")
-P3_VERSION=$($PYTHON3 -c "import sys;print(sys.version[:3])")
+P3_VERSION=$($PYTHON3 -c 'import sys;v = sys.version.split()[0].split("."); print("{}.{}".format(v[0], v[1]))')
 
-UST_PYTHON2="$WORKSPACE/deps/build/lib/python$P2_VERSION/site-packages"
 UST_PYTHON3="$WORKSPACE/deps/build/lib/python$P3_VERSION/site-packages"
 
-export PYTHONPATH="$UST_PYTHON2:$UST_PYTHON3"
+export PYTHONPATH="$UST_PYTHON3"
 
 
 
 # Create build and tmp directories
-rm -rf "$PREFIX"
-mkdir -p "$PREFIX"
+rm -rf "$OUTDIR" "$TAPDIR"
+mkdir -p "$OUTDIR" "$TAPDIR"
 
 
 
@@ -146,11 +150,14 @@ cd "$SRCDIR"
 
 # Get source version from configure script
 eval "$(grep '^PACKAGE_VERSION=' ./configure)"
+PACKAGE_VERSION=${PACKAGE_VERSION//\-pre*/}
+
+CONF_OPTS=("--enable-python-bindings" "--enable-test-java-agent-all" "--enable-test-python3-agent")
 
 TARBALL_FILE="lttng-tools-$PACKAGE_VERSION.tar.bz2"
 
 # Make sure the reported version matches the current git tag
-GIT_TAG="$(git describe --exact-match --tags $(git log -n1 --pretty='%h')|| echo 'undefined')"
+GIT_TAG="$(git describe --exact-match --tags "$(git log -n1 --pretty='%h')" || echo 'undefined')"
 
 if [ "v$PACKAGE_VERSION" != "$GIT_TAG" ]; then
   echo "Git checkout is not tagged or doesn't match the reported version."
@@ -160,7 +167,7 @@ fi
 # Generate release tarball
 ./configure
 make dist
-cp "./$TARBALL_FILE" "$PREFIX/"
+cp "./$TARBALL_FILE" "$OUTDIR/"
 
 
 # Allow core dumps
@@ -171,27 +178,54 @@ ulimit -c unlimited
 export LTTNG_SESSIOND_PATH="/bin/true"
 
 
-# Do an in-tree test build
+## Do an in-tree test build
 mkdir "$WORKSPACE/intree"
 cd "$WORKSPACE/intree" || exit 1
-tar xvf "$PREFIX/$TARBALL_FILE" --strip 1
-./configure --prefix="$(mktemp -d)" --enable-python-bindings --enable-test-java-agent-all --enable-test-python-agent-all
+
+tar xvf "$OUTDIR/$TARBALL_FILE" --strip 1
+./configure --prefix="$(mktemp -d)" "${CONF_OPTS[@]}"
+
+# BUILD!
 make -j "$(nproc)" V=1
-make check
+
 make install
+
+# Run tests, don't fail now, we want to run the archiving steps
+make --keep-going check || failed_tests=1
+
+# Copy tap logs for the jenkins tap parser before cleaning the build dir
+rsync -a --exclude 'test-suite.log' --include '*/' --include '*.log' --exclude='*' tests/ "$TAPDIR/intree"
+
+# Clean the build directory
 make clean
 
-# do an out-of-tree test build
+
+## Do an out-of-tree test build
 mkdir "$WORKSPACE/oot"
 mkdir "$WORKSPACE/oot/src"
 mkdir "$WORKSPACE/oot/build"
 cd "$WORKSPACE/oot/src" || exit 1
-tar xvf "$PREFIX/$TARBALL_FILE" --strip 1
+
+tar xvf "$OUTDIR/$TARBALL_FILE" --strip 1
 cd "$WORKSPACE/oot/build" || exit 1
-"$WORKSPACE/oot/src/configure" --prefix="$(mktemp -d)" --enable-python-bindings --enable-test-java-agent-all --enable-test-python-agent-all
+"$WORKSPACE/oot/src/configure" --prefix="$(mktemp -d)" "${CONF_OPTS[@]}"
+
+# BUILD!
 make -j "$(nproc)" V=1
-make check
+
 make install
+
+# Run tests, don't fail now, we want to run the archiving steps
+make --keep-going check || failed_tests=1
+
+# Copy tap logs for the jenkins tap parser before cleaning the build dir
+rsync -a --exclude 'test-suite.log' --include '*/' --include '*.log' --exclude='*' tests/ "$TAPDIR/oot"
+
+# Clean the build directory
 make clean
 
+
+# Exit with failure if any of the tests failed
+exit $failed_tests
+
 # EOF
This page took 0.025881 seconds and 4 git commands to generate.