summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.travis.yml18
-rwxr-xr-x.travis/linux-build.sh46
2 files changed, 40 insertions, 24 deletions
diff --git a/.travis.yml b/.travis.yml
index 7fe4bfacf..370b3d0a6 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -34,24 +34,14 @@ env:
- OPTS="--disable-ssl"
- TESTSUITE=1 KERNEL=3.16
- TESTSUITE=1 OPTS="--enable-shared"
+ - TESTSUITE=1 DPDK=1
+ - TESTSUITE=1 LIBS=-ljemalloc
+ - KERNEL_LIST="5.0 4.20 4.19 4.18 4.17 4.16"
+ - KERNEL_LIST="4.15 4.14 4.9 4.4 3.19 3.16"
- BUILD_ENV="-m32" OPTS="--disable-ssl"
- DPDK=1 OPTS="--enable-shared"
- - TESTSUITE=1 DPDK=1
- DPDK_SHARED=1
- DPDK_SHARED=1 OPTS="--enable-shared"
- - KERNEL=5.0
- - KERNEL=4.20
- - KERNEL=4.19
- - KERNEL=4.18
- - KERNEL=4.17
- - KERNEL=4.16
- - KERNEL=4.15
- - KERNEL=4.14
- - KERNEL=4.9
- - KERNEL=4.4
- - KERNEL=3.19
- - KERNEL=3.16
- - TESTSUITE=1 LIBS=-ljemalloc
matrix:
include:
diff --git a/.travis/linux-build.sh b/.travis/linux-build.sh
index 98aa12b22..1577ae516 100755
--- a/.travis/linux-build.sh
+++ b/.travis/linux-build.sh
@@ -31,6 +31,8 @@ function install_kernel()
sed 's/.*\..*\.\(.*\)/\1/' | sort -h | tail -1)
version="${1}.${lo_ver}"
+ rm -rf index* linux-*
+
url="${base_url}/linux-${version}.tar.xz"
# Download kernel sources. Try direct link on CDN failure.
wget ${url} || wget ${url} || wget ${url/cdn/www}
@@ -117,6 +119,23 @@ function configure_ovs()
./boot.sh && ./configure $* || { cat config.log; exit 1; }
}
+function build_ovs()
+{
+ local KERNEL=$1
+
+ configure_ovs $OPTS
+ make selinux-policy
+
+ # Only build datapath if we are testing kernel w/o running testsuite
+ if [ "${KERNEL}" ]; then
+ pushd datapath
+ make -j4
+ popd
+ else
+ make -j4
+ fi
+}
+
if [ "$KERNEL" ]; then
install_kernel $KERNEL
fi
@@ -132,18 +151,19 @@ if [ "$DPDK" ] || [ "$DPDK_SHARED" ]; then
fi
fi
-OPTS="$EXTRA_OPTS $*"
-
if [ "$CC" = "clang" ]; then
export OVS_CFLAGS="$CFLAGS -Wno-error=unused-command-line-argument"
elif [[ $BUILD_ENV =~ "-m32" ]]; then
# Disable sparse for 32bit builds on 64bit machine
export OVS_CFLAGS="$CFLAGS $BUILD_ENV"
else
- OPTS="$OPTS --enable-sparse"
+ OPTS="--enable-sparse"
export OVS_CFLAGS="$CFLAGS $BUILD_ENV $SPARSE_FLAGS"
fi
+save_OPTS="${OPTS} $*"
+OPTS="${EXTRA_OPTS} ${save_OPTS}"
+
if [ "$TESTSUITE" ]; then
# 'distcheck' will reconfigure with required options.
# Now we only need to prepare the Makefile without sparse-wrapped CC.
@@ -156,14 +176,20 @@ if [ "$TESTSUITE" ]; then
exit 1
fi
else
- configure_ovs $OPTS
- make selinux-policy
-
- # Only build datapath if we are testing kernel w/o running testsuite
- if [ "$KERNEL" ]; then
- cd datapath
+ if [ -z "${KERNEL_LIST}" ]; then build_ovs ${KERNEL};
+ else
+ save_EXTRA_OPTS="${EXTRA_OPTS}"
+ for KERNEL in ${KERNEL_LIST}; do
+ echo "=============================="
+ echo "Building with kernel ${KERNEL}"
+ echo "=============================="
+ EXTRA_OPTS="${save_EXTRA_OPTS}"
+ install_kernel ${KERNEL}
+ OPTS="${EXTRA_OPTS} ${save_OPTS}"
+ build_ovs ${KERNEL}
+ make distclean
+ done
fi
- make -j4
fi
exit 0