mirror of
http://git.haproxy.org/git/haproxy.git/
synced 2024-12-15 07:54:33 +00:00
e1c0e6921b
when asan (address sanitizer) is enabled, it's findings were mixed with test debug output and it was hard to identify whether tests failed or asan failed. let us output asan log to separate file and report its findings separately
153 lines
5.0 KiB
YAML
153 lines
5.0 KiB
YAML
# 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"
|
|
- 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, ninja-build ]
|
|
|
|
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: amd64
|
|
if: type == push
|
|
compiler: clang
|
|
env: TARGET=linux-glibc CC=clang-9
|
|
name: openssl-1.1.1
|
|
- 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 COVERITY_SCAN_PROJECT_NAME="Haproxy" COVERITY_SCAN_BRANCH_PATTERN="*" COVERITY_SCAN_NOTIFICATION_EMAIL="chipitsine@gmail.com" COVERITY_SCAN_BUILD_COMMAND="make CC=clang DEFINE=-DDEBUG_USE_ABORT 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
|
|
name: Coverity scan | openssl-1.1.1
|
|
- 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
|
|
name: openssl-1.1.1 | 51d trie
|
|
- os: linux
|
|
if: type == push
|
|
compiler: clang
|
|
env: TARGET=linux-glibc LIBRESSL_VERSION=3.1.1 CC=clang-9
|
|
name: libressl-3.1.1
|
|
- 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 LIBRESSL_VERSION=2.9.2 EXTRA_OBJS="contrib/prometheus-exporter/service-prometheus.o" CC=clang-9
|
|
name: libressl-2.9.2 | prometheus-exporter
|
|
- os: linux
|
|
if: type == cron
|
|
compiler: clang
|
|
env: TARGET=linux-glibc BORINGSSL=yes
|
|
name: boringssl
|
|
- os: linux
|
|
if: type == push
|
|
compiler: clang
|
|
env: TARGET=linux-glibc FLAGS= CC=clang-9
|
|
name: FLAGS=
|
|
- os: osx
|
|
osx_image: xcode12
|
|
if: type == push
|
|
compiler: clang
|
|
before_script:
|
|
- echo 'brew "socat"' > brew.bundle
|
|
- brew bundle --file=brew.bundle
|
|
env: TARGET=osx FLAGS="USE_OPENSSL=1" OPENSSL_VERSION=1.1.1f
|
|
name: openssl-1.1.1
|
|
- 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
|
|
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"
|
|
- |
|
|
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
|