jjb: Allow unsupported modules to be loaded when testing lttng-tools
[lttng-ci.git] / scripts / lttng-tools / build.sh
index f5cafe4dde250f2d8192393f22d45c5d2c09f128..c241e7ba9d256cb86bf238c1449bcfc87a34c3ea 100755 (executable)
@@ -281,10 +281,15 @@ if [ -d "$WORKSPACE/src/lttng-modules" ]; then
     $MAKE -j"$($NPROC)" V=1
     $MAKE modules_install V=1
     depmod
+
+    if [[ -f /etc/products.d/SLES.prod ]] ; then
+        echo 'allow_unsupported_modules 1' > /etc/modprobe.d/10-unsupported-modules.conf
+    fi
 fi
 
 # Print build env details
 print_header "Build environment details"
+print_hardware || true
 print_os || true
 print_tooling || true
 
@@ -321,8 +326,19 @@ no-ust)
 agents)
     print_header "Conf: Java and Python agents"
 
-    export JAVA_HOME="/usr/lib/jvm/default-java"
+    if [[ -z "${JAVA_HOME:-}" ]] ; then
+        export JAVA_HOME="/usr/lib/jvm/default-java"
+    fi
     export CLASSPATH="$DEPS_JAVA/lttng-ust-agent-all.jar:/usr/share/java/log4j-api.jar:/usr/share/java/log4j-core.jar:/usr/share/java/log4j-1.2.jar"
+    if [[ -f /etc/products.d/SLES.prod ]] ; then
+        export JAVA_HOME="/usr/${LIBDIR_ARCH}/jvm/java-1.8.0-openjdk-1.8.0"
+        export PATH="/usr/${LIBDIR_ARCH}/jvm/java-1.8.0-openjdk-1.8.0/bin:/usr/${LIBDIR_ARCH}/jvm/jre-1.8.0-openjdk/bin:${PATH}"
+        SLES_VERSION="$(grep -E '</version>' /etc/products.d/SLES.prod | grep -E -o '[0-9]+\.[0-9]+')"
+        if vergte "${SLES_VERSION}" "15.4" ; then
+            export CLASSPATH="${DEPS_JAVA}/lttng-ust-agent-all.jar:/usr/share/java/log4j/log4j-api.jar:/usr/share/java/log4j/log4j-core.jar:/usr/share/java/log4j12/log4j-12.jar"
+        fi
+    fi
+
 
     CONF_OPTS+=("--enable-python-bindings" "--enable-test-java-agent-all")
 
@@ -343,6 +359,11 @@ relayd-only)
     print_header "Conf: Relayd only"
 
     CONF_OPTS+=("--disable-bin-lttng" "--disable-bin-lttng-consumerd" "--disable-bin-lttng-crash" "--disable-bin-lttng-sessiond" "--disable-extras" "--disable-man-pages" "--without-lttng-ust")
+
+    # A config option for lib-lttng-ctl was added in 2.14
+    if vergte "$PACKAGE_VERSION" "2.14"; then
+        CONF_OPTS+=("--disable-lib-lttng-ctl")
+    fi
     ;;
 
 debug-rcu)
@@ -550,14 +571,17 @@ if [ "$LTTNG_TOOLS_RUN_TESTS" = "yes" ] && [[ ! "$conf" =~ (no-ust|relayd-only)
         cd lttng-ust-java-tests
 
         LTTNG_UST_JAVA_TESTS_ENV=(
-            PATH="${WORKSPACE}/build/bin/:$PATH"
-            LD_LIBRARY_PATH="${WORKSPACE}/build/lib:$LD_LIBRARY_PATH"
+            # Some ci nodes (eg. SLES12) don't have maven distributed by their
+            # package manager. As a result, the maven binary is deployed in
+            # '/opt/apache/maven/bin'.
+            PATH="${WORKSPACE}/build/bin/:$PATH:/opt/apache/maven/bin/"
+            LD_LIBRARY_PATH="${WORKSPACE}/build/${LIBDIR}/:${WORKSPACE}/build/${LIBDIR_ARCH}:$LD_LIBRARY_PATH"
             LTTNG_UST_DEBUG=1
-            LTTNG_CONSUMERD32_BIN="${WORKSPACE}/build/lib/lttng/libexec/lttng-consumerd"
-            LTTNG_CONSUMERD64_BIN="${WORKSPACE}/build/lib/lttng/libexec/lttng-consumerd"
+            LTTNG_CONSUMERD32_BIN="${WORKSPACE}/build/${LIBDIR_ARCH}/lttng/libexec/lttng-consumerd"
+            LTTNG_CONSUMERD64_BIN="${WORKSPACE}/build/${LIBDIR_ARCH}/lttng/libexec/lttng-consumerd"
             LTTNG_SESSION_CONFIG_XSD_PATH="${WORKSPACE}/build/share/xml/lttng"
-            BABELTRACE_PLUGIN_PATH="${WORKSPACE}/deps/build/lib/babeltrace2/plugins"
-            LIBBABELTRACE2_PLUGIN_PROVIDER_DIR="${WORKSPACE}/deps/build/lib/babeltrace2/plugin-providers"
+            BABELTRACE_PLUGIN_PATH="${WORKSPACE}/deps/build/${LIBDIR_ARCH}/babeltrace2/plugins"
+            LIBBABELTRACE2_PLUGIN_PROVIDER_DIR="${WORKSPACE}/deps/build/${LIBDIR_ARCH}/babeltrace2/plugin-providers"
         )
         LTTNG_UST_JAVA_TESTS_MAVEN_OPTS=(
             "-Dmaven.test.failure.ignore=true"
@@ -565,12 +589,19 @@ if [ "$LTTNG_TOOLS_RUN_TESTS" = "yes" ] && [[ ! "$conf" =~ (no-ust|relayd-only)
             "-Djul-jar-location=${WORKSPACE}/deps/build/share/java/lttng-ust-agent-jul.jar"
             "-Dlog4j-jar-location=${WORKSPACE}/deps/build/share/java/lttng-ust-agent-log4j.jar"
             "-Dlog4j2-jar-location=${WORKSPACE}/deps/build/share/java/lttng-ust-agent-log4j2.jar"
-            "-DargLine=-Djava.library.path=${WORKSPACE}/deps/build/lib"
+            "-DargLine=-Djava.library.path=${WORKSPACE}/deps/build/${LIBDIR_ARCH}"
             '-Dgroups=!domain:log4j2'
         )
+
         env "${LTTNG_UST_JAVA_TESTS_ENV[@]}" mvn -version
+
+        if [[ -n "${LTTNG_TOOLS_UST_JAVA_TESTS_LOG4J_API_VERSION:-}" ]] ; then
+            env "${LTTNG_UST_JAVA_TESTS_ENV[@]}" mvn versions:use-dep-version -Dincludes=org.apache.logging.log4j:'*' -DdepVersion="${LTTNG_TOOLS_UST_JAVA_TESTS_LOG4J_API_VERSION}"
+        fi
+
+        mkdir -p "${WORKSPACE}/log"
         env "${LTTNG_UST_JAVA_TESTS_ENV[@]}" lttng-sessiond -b -vvv 1>"${WORKSPACE}/log/lttng-ust-java-tests-lttng-sessiond.log" 2>&1
-        env "${LTTNG_UST_JAVA_TESTS_ENV[@]}" mvn "${LTTNG_UST_JAVA_TESTS_MAVEN_OPTS[@]}" clean verify || exit_status=1
+        env "${LTTNG_UST_JAVA_TESTS_ENV[@]}" mvn "${LTTNG_UST_JAVA_TESTS_MAVEN_OPTS[@]}" clean compile dependency:build-classpath dependency:tree verify || exit_status=1
         killall lttng-sessiond
 
         cd "${OWD}"
This page took 0.024048 seconds and 4 git commands to generate.