1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141
|
dist: bionic
language: c
compiler:
- clang
- gcc
os:
- linux
- osx
osx_image: xcode12.2
addons:
apt:
packages:
- rpm
- libnl-3-200
- libnl-3-dev
- 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
coverity_scan:
project:
name: "ofiwg/libfabric"
description: "Libfabric project coverity scans"
notification_email: sean.hefty@intel.com
build_command_prepend: "./autogen.sh; ./configure --enable-efa=$RDMA_CORE_PATH --enable-psm2 --enable-psm3=$RDMA_CORE_PATH --enable-usnic --enable-verbs=$RDMA_CORE_PATH"
build_command: "make -j2"
branch_pattern: main
env:
global:
- PREFIX=$HOME/install
- PATH=$PREFIX/bin:$PATH
- CPPFLAGS="-I$PREFIX/include"
- LDFLAGS=-L$PREFIX/lib
- LD_LIBRARY_PATH=$PREFIX/lib
- LIBFABRIC_CONFIGURE_ARGS="--prefix=$PREFIX --enable-tcp"
# Temporarily disable -Werror testing (Jan 2020) because
# there are some warnings about unaligned atomics that I
# do not know how to fix
#- MAKE_FLAGS="AM_CFLAGS=-Werror"
- MAKE_FLAGS=
- ASAN_OPTIONS=detect_leaks=0
# Encrypted COVERITY_SCAN_TOKEN
- secure: "gDU1pbiuGsuPHezMp0X2DEC9+bBu2F+XDqR93JMkIzHNI7ygQX/kXeJT6ly9MH60paSpIolfQFNA6QotKtpZ62X3a9wrhv3In1viB+EJr1wmsPrKfprI+JfZYevPLTn6LUQM0d2zoclRWNJzY/uldc6bEaXXxDKIaRk8pgmNZR4="
# Brew update GNU Autotools so that autogen can succeed
before_install:
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew update;
brew upgrade automake || true; brew upgrade libtool || true;
fi
install:
- ./autogen.sh
# Build rdma-core because ubuntu doesn't have a sufficiently new version of
# ibverbs/rdma-core for EFA and PSM3. OS X doesn't have verbs support.
- if [[ "$TRAVIS_OS_NAME" == "linux" ]] ; then
RDMA_CORE_BRANCH="v27.0";
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-psm3=$RDMA_CORE_PATH
--enable-verbs=$RDMA_CORE_PATH
--enable-efa=$RDMA_CORE_PATH";
fi
# Test fabric direct
# (all other providers are automatically disabled by configure)
- ./configure --prefix=$PREFIX --enable-direct=sockets
- make -j2 $MAKE_FLAGS
# Test loadable library option
# 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-psm3
--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
- CFLAGS="-fsanitize=address" ./configure $LIBFABRIC_CONFIGURE_ARGS
- make -j2 $MAKE_FLAGS
- make install
- make test
- make distcheck
# We don't want to use LIBFABRIC_CONFIGURE_ARGS here as the standard
# prefix should be tested when building the RPM.
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then
make dist;
config_options="--enable-efa=$RDMA_CORE_PATH
--enable-psm3=$RDMA_CORE_PATH
--enable-verbs=$RDMA_CORE_PATH --enable-usnic";
LDFLAGS=-Wl,--build-id rpmbuild -ta
--define "configopts $config_options" libfabric-*.tar.bz2;
fi
script:
- cd fabtests
- ./autogen.sh
- CFLAGS="-fsanitize=address" ./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
|