-
Notifications
You must be signed in to change notification settings - Fork 386
/
.travis.yml
138 lines (134 loc) · 4.66 KB
/
.travis.yml
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
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: [email protected]
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-efa
--disable-hook_debug
--disable-mrail
--disable-perf
--disable-psm
--disable-psm2
--disable-psm3
--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