-
Notifications
You must be signed in to change notification settings - Fork 4
/
.travis.yml
133 lines (123 loc) · 4.5 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
# build status appears on https://travis-ci.com/haproxy/haproxy
dist: bionic
language: c
branches:
only:
- master
- next
env:
global:
- FLAGS="USE_ZLIB=1 USE_PCRE=1 USE_PCRE_JIT=1 USE_LUA=1 USE_OPENSSL=1 USE_SYSTEMD=1 USE_WURFL=1 WURFL_INC=contrib/wurfl WURFL_LIB=contrib/wurfl USE_DEVICEATLAS=1 DEVICEATLAS_SRC=contrib/deviceatlas USE_51DEGREES=1"
- SSL_LIB=${HOME}/opt/lib
- SSL_INC=${HOME}/opt/include
- TMPDIR=/tmp
- FIFTYONEDEGREES_SRC="contrib/51d/src/pattern"
- DEBUG_OPTIONS="DEBUG_STRICT=1"
addons:
apt:
update: true
packages: [ liblua5.3-dev, libsystemd-dev, libpcre2-dev, clang-9, socat ]
homebrew:
update: true
packages: [ socat ]
cache:
directories:
- download-cache
- ${HOME}/opt
matrix:
include:
- os: linux
arch: ppc64le
if: type == cron
compiler: gcc
env: TARGET=linux-glibc OPENSSL_VERSION=1.0.2u
- os: linux
arch: amd64
if: type == push
compiler: clang
env: TARGET=linux-glibc OPENSSL_VERSION=1.1.1f CC=clang-9
- os: linux
# The ARM64 build uses openssl and libssl-dev from Ubuntu repository. They come preinstalled by TravisCI!
arch: arm64
if: type == push
compiler: clang
env: TARGET=linux-glibc OPENSSL_VERSION=1.1.1f CC=clang-9 SSL_LIB=/usr/lib SSL_INC=/usr/include
install:
- git clone https://github.com/VTest/VTest.git ../vtest
# Special flags due to: https://github.com/vtest/VTest/issues/12
- make -C ../vtest FLAGS="-O2 -s -Wall"
- os: linux
arch: s390x
if: type == push
compiler: gcc
env: TARGET=linux-glibc OPENSSL_VERSION=1.1.1f
- os: linux
if: type == cron
compiler: clang
env: TARGET=linux-glibc OPENSSL_VERSION=1.1.1f COVERITY_SCAN_PROJECT_NAME="Haproxy" COVERITY_SCAN_BRANCH_PATTERN="*" COVERITY_SCAN_NOTIFICATION_EMAIL="[email protected]" COVERITY_SCAN_BUILD_COMMAND="make CC=clang TARGET=$TARGET $FLAGS 51DEGREES_SRC=$FIFTYONEDEGREES_SRC"
script:
- |
if [ ! -z ${COVERITY_SCAN_TOKEN+x} ]; then
make -C contrib/wurfl
curl -s "https://scan.coverity.com/scripts/travisci_build_coverity_scan.sh" | bash || true
fi
- os: linux
if: type == cron
compiler: clang
env: TARGET=linux-glibc OPENSSL_VERSION=1.1.0l FIFTYONEDEGREES_SRC="contrib/51d/src/trie" CC=clang-9
- os: linux
if: type == push
compiler: clang
env: TARGET=linux-glibc LIBRESSL_VERSION=3.1.1 CC=clang-9
- os: linux
env: DEBUG_OPTIONS=""
if: type == cron
compiler: clang
env: TARGET=linux-glibc LIBRESSL_VERSION=3.0.2 CC=clang-9
- os: linux
if: type == cron
compiler: clang
env: TARGET=linux-glibc LIBRESSL_VERSION=2.9.2 EXTRA_OBJS="contrib/prometheus-exporter/service-prometheus.o" CC=clang-9
- os: linux
if: type == cron
compiler: clang
env: TARGET=linux-glibc BORINGSSL=yes
- os: linux
if: type == push
compiler: clang
env: TARGET=linux-glibc FLAGS= CC=clang-9
- os: osx
if: type == push
compiler: clang
env: TARGET=osx FLAGS="USE_OPENSSL=1" OPENSSL_VERSION=1.1.1f
- os: linux
if: type == cron
compiler: clang
env: TARGET=linux-glibc FLAGS="USE_SLZ=1 USE_PCRE2=1 USE_PCRE2_JIT=1 USE_LUA=1 USE_OPENSSL=1 USE_SYSTEMD=1 USE_WURFL=1 WURFL_INC=contrib/wurfl WURFL_LIB=contrib/wurfl USE_51DEGREES=1" CC=clang-9
before_script:
- git clone https://github.com/wtarreau/libslz
- cd libslz && make && make PREFIX=${HOME}/opt install && cd ..
allow_failures:
- os: linux
arch: arm64
if: type == push
compiler: clang
install:
- git clone https://github.com/VTest/VTest.git ../vtest
# Special flags due to: https://github.com/vtest/VTest/issues/12
- make -C ../vtest FLAGS="-O2 -s -Wall"
- travis_wait bash -c 'scripts/build-ssl.sh >build-ssl.log 2>&1' || (cat build-ssl.log && exit 1)
script:
- if [ "${CC%-*}" = "clang" ]; then export FLAGS="$FLAGS USE_OBSOLETE_LINKER=1" DEBUG_CFLAGS="-g -fsanitize=address" LDFLAGS="-fsanitize=address"; fi
- make -C contrib/wurfl
- make -j3 CC=$CC V=1 ERR=1 TARGET=$TARGET $FLAGS DEBUG_CFLAGS="$DEBUG_CFLAGS" LDFLAGS="$LDFLAGS" ADDLIB="-Wl,-rpath,$SSL_LIB" 51DEGREES_SRC="$FIFTYONEDEGREES_SRC" EXTRA_OBJS="$EXTRA_OBJS" $DEBUG_OPTIONS
- ./haproxy -vv
- if [ "${TRAVIS_OS_NAME}" = "linux" ]; then ldd haproxy; fi
- if [ "${TRAVIS_OS_NAME}" = "osx" ]; then otool -L haproxy; fi
- make reg-tests VTEST_PROGRAM=../vtest/vtest REGTESTS_TYPES=default,bug,devel
after_failure:
- |
for folder in ${TMPDIR}/*regtest*/vtc.*; do
cat $folder/INFO
cat $folder/LOG
done