travis: Extended kernel build matrix
authorThomas Graf <tgraf@noironetworks.com>
Fri, 28 Nov 2014 12:48:49 +0000 (13:48 +0100)
committerBen Pfaff <blp@nicira.com>
Fri, 5 Dec 2014 20:35:08 +0000 (12:35 -0800)
When doing test builds, build against the following kernels:
  - KERNEL=3.17.4
  - KERNEL=3.16.7
  - KERNEL=3.14.25
  - KERNEL=3.12.33
  - KERNEL=3.10.61
  - KERNEL=3.4.104
  - KERNEL=2.6.32.64

When doing pure kernel test builds, skip compilation of user space bits.

Signed-off-by: Thomas Graf <tgraf@noironetworks.com>
Signed-off-by: Ben Pfaff <blp@nicira.com>
.travis.yml
.travis/build.sh

index f6177c7..b91327d 100644 (file)
@@ -7,10 +7,16 @@ before_install: ./.travis/prepare.sh
 
 env:
   - OPTS="--disable-ssl"
-  - TESTSUITE=1 KERNEL=1 OPTS="--with-linux=./linux-3.16.2"
-  - KERNEL=1 DPDK=1 OPTS="--with-dpdk=./dpdk-1.7.1/build"
+  - TESTSUITE=1 KERNEL=3.17.4
+  - KERNEL=3.17.4 DPDK=1 OPTS="--with-dpdk=./dpdk-1.7.1/build"
   - TESTSUITE=1 OPTS="--enable-shared"
-  - DPDK=1 OPTS="--enable-shared"
+  - KERNEL=3.17.4 DPDK=1 OPTS="--enable-shared"
+  - KERNEL=3.16.7
+  - KERNEL=3.14.25
+  - KERNEL=3.12.33
+  - KERNEL=3.10.61
+  - KERNEL=3.4.104
+  - KERNEL=2.6.32.64
 
 script: ./.travis/build.sh $OPTS
 
index 7043c40..6e99c63 100755 (executable)
@@ -4,15 +4,32 @@ set -o errexit
 
 KERNELSRC=""
 CFLAGS="-Werror"
+EXTRA_OPTS=""
 
 function install_kernel()
 {
-    wget https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.16.2.tar.gz
-    tar xzvf linux-3.16.2.tar.gz > /dev/null
-    cd linux-3.16.2
+    if [[ "$1" =~ ^3.* ]]; then
+        PREFIX="v3.x"
+    else
+        PREFIX="v2.6/longterm/v2.6.32"
+    fi
+
+    wget https://www.kernel.org/pub/linux/kernel/${PREFIX}/linux-${1}.tar.gz
+    tar xzvf linux-${1}.tar.gz > /dev/null
+    cd linux-${1}
     make allmodconfig
-    make net/openvswitch/
+
+    # Older kernels do not include openvswitch
+    if [ -d "net/openvswitch" ]; then
+        make net/openvswitch/
+    else
+        make net/bridge/
+    fi
+
     KERNELSRC=$(pwd)
+    if [ ! "$DPDK" ]; then
+        EXTRA_OPTS="--with-linux=$(pwd)"
+    fi
     echo "Installed kernel source in $(pwd)"
     cd ..
 }
@@ -38,7 +55,7 @@ function configure_ovs()
 }
 
 if [ "$KERNEL" ] || [ "$DPDK" ]; then
-    install_kernel
+    install_kernel $KERNEL
 fi
 
 if [ "$DPDK" ]; then
@@ -50,8 +67,12 @@ elif [ $CC != "clang" ]; then
     CFLAGS="$CFLAGS -Wsparse-error"
 fi
 
-configure_ovs $*
+configure_ovs $EXTRA_OPTS $*
 
+# Only build datapath if we are testing kernel w/o running testsuite
+if [ $KERNEL ] && [ ! "$TESTSUITE" ] && [ ! "$DPDK" ]; then
+    cd datapath
+fi
 
 if [ $CC = "clang" ]; then
     make CFLAGS="$CFLAGS -Wno-error=unused-command-line-argument"