mirror of
http://git.haproxy.org/git/haproxy.git/
synced 2024-12-14 23:44:41 +00:00
977209d1d8
Now it's much cleaner, both 51d.c and the dummy library live together and are easier to spot and maintain. The build howto probably ought to be moved there as well. Makefile, docs and MAINTAINERS were updated, as well as the github CI's build matrix, travis CI's, and coverity checks.
102 lines
3.4 KiB
YAML
102 lines
3.4 KiB
YAML
# build status appears on https://travis-ci.com/haproxy/haproxy
|
|
|
|
dist: focal
|
|
|
|
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"
|
|
- TMPDIR=/tmp
|
|
- FIFTYONEDEGREES_SRC="addons/51degrees/dummy/pattern"
|
|
- DEBUG_OPTIONS="DEBUG_STRICT=1"
|
|
|
|
addons:
|
|
apt:
|
|
update: true
|
|
packages: [ liblua5.3-dev, libsystemd-dev, libpcre2-dev, clang-9, socat, ninja-build, libpcre3-dev ]
|
|
|
|
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
|
|
name: openssl-1.0.2
|
|
- os: linux
|
|
arch: arm64
|
|
if: type == push
|
|
compiler: clang
|
|
env: TARGET=linux-glibc CC=clang-9
|
|
name: openssl-1.1.1
|
|
- os: linux
|
|
arch: s390x
|
|
if: type == push
|
|
compiler: gcc
|
|
env: TARGET=linux-glibc
|
|
name: openssl-1.1.1
|
|
- os: linux
|
|
if: type == cron
|
|
compiler: clang
|
|
env: TARGET=linux-glibc OPENSSL_VERSION=1.1.0l FIFTYONEDEGREES_SRC="addons/51degrees/dummy/trie" CC=clang-9
|
|
name: openssl-1.1.1 | 51d trie
|
|
- os: linux
|
|
env: DEBUG_OPTIONS=""
|
|
if: type == cron
|
|
compiler: clang
|
|
env: TARGET=linux-glibc LIBRESSL_VERSION=3.0.2 CC=clang-9
|
|
name: libressl-3.0.2 | ERR=
|
|
- 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 ..
|
|
- export SLZ_INC=${HOME}/opt/include SLZ_LIB=${HOME}/opt/lib
|
|
- export ADDLIB="-Wl,-rpath,$SLZ_LIB"
|
|
name: openssl-1.1.1 | slz | pcre2
|
|
|
|
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"
|
|
- |
|
|
if [ ! -z ${OPENSSL_VERSION+x} ] || [ ! -z ${LIBRESSL_VERSION+x} ] || [ ! -z ${BORINGSSL+x} ]; then
|
|
travis_wait bash -c 'scripts/build-ssl.sh >build-ssl.log 2>&1' || (cat build-ssl.log && exit 1)
|
|
export SSL_LIB=${HOME}/opt/lib SSL_INC=${HOME}/opt/include
|
|
export ADDLIB="-Wl,-rpath,$SSL_LIB"
|
|
fi
|
|
|
|
script:
|
|
- if [ "${CC%-*}" = "clang" ]; then export FLAGS="$FLAGS USE_OBSOLETE_LINKER=1" DEBUG_CFLAGS="-g -fsanitize=address" LDFLAGS="-fsanitize=address" ASAN_OPTIONS="log_path=asan.log"; fi
|
|
- make -C contrib/wurfl
|
|
- make -j3 CC=$CC CPU_CFLAGS.generic="-O1" V=1 ERR=1 TARGET=$TARGET $FLAGS DEBUG_CFLAGS="$DEBUG_CFLAGS" LDFLAGS="$LDFLAGS" ADDLIB="$ADDLIB" SSL_LIB="$SSL_LIB" SSL_INC="$SSL_INC" SLZ_LIB="$SLZ_LIB" SLZ_INC="$SLZ_INC" 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
|
|
- |
|
|
if ls asan.log* 1>/dev/null 2>&1; then
|
|
cat asan.log*
|
|
exit 1
|
|
fi
|
|
|
|
after_failure:
|
|
- |
|
|
for folder in ${TMPDIR}/*regtest*/vtc.*; do
|
|
cat $folder/INFO
|
|
cat $folder/LOG
|
|
done
|