Skip to content

Commit

Permalink
travis: lots of updates
Browse files Browse the repository at this point in the history
- Updated to Ubuntu 18.04 ("bionic"), which, according to
  https://docs.travis-ci.com/user/languages/cpp/#gcc-on-linux, has gcc
  v7.4.0 (gcc became C99 compliant at v4.9.0).
- Fix -Werror handling.  Cannot globally set -Werror in CPPFLAGS:
  1. It belongs in CFLAGS, not CPPFLAGS.
  2. Setting it globally causes many tests in configure to
     artificially fail (e.g., clang fails to be selected and falls
     back to gcc, and the C99 tests fail).
- Remove RDMA core git clone+build.  Instead, use the rdma-core
  packages that come in Ubuntu 18.04 (which are modern enough for our
  needs).
- Remove UCX git clone+build (nothing is using it)
- Remove lots of unnecessary apt packages
- Update the list of Libfabric providers to disable in some tests
- Update some default providers to guarantee to build on Linux
- Replace a wholly redundant test with an --enable-debug test
- Update the DL test to use the TCP provider, not sockets (as a
  general move for the future, since the TCP provider will someday
  replace the sockets provider).  Can't move the fabric direct test to
  use the TCP provider yet, because the TCP provider does not yet
  support fabric direct.

Signed-off-by: Jeff Squyres <[email protected]>

squashme

Signed-off-by: Jeff Squyres <[email protected]>
  • Loading branch information
jsquyres committed Jan 13, 2020
1 parent 4467497 commit 0126c22
Showing 1 changed file with 39 additions and 56 deletions.
95 changes: 39 additions & 56 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
dist: trusty
dist: bionic
language: c
compiler:
- clang
Expand All @@ -15,38 +15,19 @@ addons:
- libnl-route-3-200
- libnl-route-3-dev
- libnuma-dev
# required for rdma-core
- build-essential
- debhelper
- dh-systemd
- fakeroot
- gcc
- git
- libudev-dev
- make
- ninja-build
- pandoc
- pkg-config
- python
- valgrind
- sparse
- wget
- abi-compliance-checker
- abi-dumper
# 32 bit support packages
- gcc-multilib
ssh_known_hosts:
- www.openfabrics.org
- git.kernel.org
- rdma-core
- libibverbs-dev
- librdmacm-dev

env:
global:
- PREFIX=$HOME/install
- PATH=$PREFIX/bin:$PATH
- CPPFLAGS="-Werror -I$PREFIX/include"
- CPPFLAGS="-I$PREFIX/include"
- LDFLAGS=-L$PREFIX/lib
- LD_LIBRARY_PATH=$PREFIX/lib
- LIBFABRIC_CONFIGURE_ARGS="--prefix=$PREFIX --enable-sockets"
- LIBFABRIC_CONFIGURE_ARGS="--prefix=$PREFIX --enable-tcp"
- MAKE_FLAGS="AM_CFLAGS=-Werror"

# Brew update GNU Autotools so that autogen can succeed
before_install:
Expand All @@ -56,44 +37,43 @@ before_install:

install:
- ./autogen.sh
# Build rdma-core because ubuntu trusty doesn't have a sufficiently new version of ibverbs/rdma-core
# Build verbs only in linux as OS X doesn't have verbs support
- if [[ "$TRAVIS_OS_NAME" == "linux" ]] ; then
RDMA_CORE_BRANCH=v13 ;
git clone --depth 1 -b $RDMA_CORE_BRANCH https://github.com/linux-rdma/rdma-core.git && cd rdma-core && bash build.sh && cd - ;
RDMA_CORE_PATH=$PWD/rdma-core/build ;
export LD_LIBRARY_PATH="$RDMA_CORE_PATH/lib:$LD_LIBRARY_PATH" ;
LIBFABRIC_CONFIGURE_ARGS="$LIBFABRIC_CONFIGURE_ARGS --enable-usnic
--enable-verbs=$RDMA_CORE_PATH --enable-mlx=$HOME/mlx";
UCX_BRANCH=v1.2.x;
git clone --depth 1 -b $UCX_BRANCH https://github.com/openucx/ucx.git && cd ucx && ./autogen.sh && ./configure --prefix=$HOME/mlx CFLAGS="-w" && make -j2 install && cd -;
fi
- if [[ "$TRAVIS_OS_NAME" == "linux" && "`basename $CC`" == "clang" ]]; then
./configure CFLAGS="-Werror $CFLAGS" $LIBFABRIC_CONFIGURE_ARGS
--enable-debug && make -j2;
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then
LIBFABRIC_CONFIGURE_ARGS="$LIBFABRIC_CONFIGURE_ARGS --enable-usnic --enable-verbs --enable-efa";
fi
# Test fabric direct
- ./configure --prefix=$PREFIX --enable-direct=sockets --enable-udp=no
--enable-psm=no --enable-gni=no --enable-psm2=no --enable-verbs=no
--enable-usnic=no --enable-rxm=no --enable-rxd=no --enable-mlx=no
- make -j2
# (all other providers are automatically disabled by configure)
- ./configure --prefix=$PREFIX --enable-direct=sockets
- make -j2 $MAKE_FLAGS
# Test loadable library option
- ./configure --enable-sockets=dl --disable-udp --disable-rxm --disable-rxd
--disable-verbs --disable-usnic --disable-mlx --prefix=$PREFIX
- make -j2
# List of providers current as of Jan 2020
- ./configure --prefix=$PREFIX --enable-tcp=dl
--disable-bgq
--disable-efa
--disable-gni
--disable-hook_debug
--disable-mrail
--disable-perf
--disable-psm
--disable-psm2
--disable-rstream
--disable-rxd
--disable-rxm
--disable-shm
--disable-tcp
--disable-udp
--disable-usnic
--disable-verbs
- make -j2 $MAKE_FLAGS
- make install
- make test
- rm -rf $PREFIX
# Test debug build
- echo "Final libfabric configure args $LIBFABRIC_CONFIGURE_ARGS"
- ./configure $LIBFABRIC_CONFIGURE_ARGS --enable-debug
- make -j2 $MAKE_FLAGS
# Test regular build
- ./configure $LIBFABRIC_CONFIGURE_ARGS
- make -j2
- make install
- make test
- make distcheck
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then make rpm; fi
# Prepare build for fabtests
- ./configure $LIBFABRIC_CONFIGURE_ARGS
- make -j2
- make -j2 $MAKE_FLAGS
- make install
- make test
- make distcheck
Expand All @@ -103,6 +83,9 @@ script:
- cd fabtests
- ./autogen.sh
- ./configure --prefix=$PREFIX --with-libfabric=$PREFIX
# Do not use MAKE_FLAGS here because we use AM_CFLAGS in the
# normal fabtests' Makefile.am (i.e., overriding it on the command
# line removes information that we need to build fabtests itself).
- make -j2
- make install
- make test

0 comments on commit 0126c22

Please sign in to comment.