travis: add 32 bit build, minor updates and cleanups
authorSitsofe Wheeler <sitsofe@yahoo.com>
Sun, 3 Sep 2017 09:02:41 +0000 (10:02 +0100)
committerSitsofe Wheeler <sitsofe@yahoo.com>
Sun, 3 Sep 2017 19:06:33 +0000 (20:06 +0100)
- Rejig the Travis file so it does a 32 bit Linux build (albeit on a 64
  bit system). GlusterFS is only installed on 64 bit Linux because the
  32 bit deb tries to pull in psmisc:i386 which conflicts with the
  regular (64 bit) psmisc. The clang 32 bit build works fine but only
  the gcc 32 bit build is done to reduce the number of builds for now.
- Minor reformatting to make it a bit easier to read the shell script
  (but behind the scenes it's still all squashed on to one line).
- Stop apt from installing/upgrading non-essential packages so as to
  reduce build time.
- Make OSX build use a newer Xcode.

.travis.yml

index 795c0fce6bfe8d5bc62839e67e2397aed9550292..94f69fb59763d5ceb9ac4824f9771e4d6e36cb14 100644 (file)
@@ -5,12 +5,16 @@ compiler:
   - clang
   - gcc
 env:
+  matrix:
+    - BUILD_ARCH="x86"
+    - BUILD_ARCH="x86_64"
   global:
     - MAKEFLAGS="-j 2"
 matrix:
   include:
     - os: osx
       compiler: clang # Workaround travis setting CC=["clang", "gcc"]
+      env: BUILD_ARCH="x86_64"
     # Build using the 10.12 SDK but target and run on OSX 10.11
 #   - os: osx
 #     compiler: clang
@@ -19,12 +23,29 @@ matrix:
     # Build on the latest OSX version (will eventually become obsolete)
     - os: osx
       compiler: clang
-      osx_image: xcode8.2
+      osx_image: xcode8.3
+      env: BUILD_ARCH="x86_64"
   exclude:
     - os: osx
       compiler: gcc
+  exclude:
+    - os: linux
+      compiler: clang
+      env: BUILD_ARCH="x86" # Only do the gcc x86 build to reduce clutter
 before_install:
-  - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then sudo apt-get -qq update; fi
-  - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then sudo apt-get install -qq -y libaio-dev libnuma-dev libz-dev librbd-dev glusterfs-common libibverbs-dev librdmacm-dev; fi
+  - EXTRA_CFLAGS="-Werror"
+  - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then
+        pkgs=(libaio-dev libnuma-dev libz-dev librbd-dev libibverbs-dev librdmacm-dev);
+        if [[ "$BUILD_ARCH" == "x86" ]]; then
+            pkgs=("${pkgs[@]/%/:i386}");
+            pkgs+=(gcc-multilib);
+            EXTRA_CFLAGS="${EXTRA_CFLAGS} -m32";
+        else
+            pkgs+=(glusterfs-common);
+        fi;
+        sudo apt-get -qq update;
+        sudo apt-get install --no-install-recommends -qq -y "${pkgs[@]}";
+    fi
 script:
-  - ./configure --extra-cflags="-Werror" && make && make test
+  - ./configure --extra-cflags="${EXTRA_CFLAGS}" && make
+  - make test