haproxy/.travis.yml
Willy Tarreau d78cf0fe0f BUILD: CI: disable slow regtests on Travis
We're getting almost 100% failure rate recently due to the "slow" tests
never completing in time on Travis. Peers do not synchronize their data
within the expected delay, health checks time out due to the tested
agent not responding, etc. This adds a lot of noise and completely voids
the value of the build test.

Let's disable the slow tests to try to get back to a fully working state.
2020-01-24 17:37:35 +01:00

123 lines
3.9 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"
- SSL_LIB=${HOME}/opt/lib
- SSL_INC=${HOME}/opt/include
- TMPDIR=/tmp
- FIFTYONEDEGREES_SRC="contrib/51d/src/pattern"
addons:
apt:
update: true
packages: [ liblua5.3-dev, libsystemd-dev, libpcre2-dev, 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 != cron
compiler: clang
env: TARGET=linux-glibc OPENSSL_VERSION=1.1.1d
- os: linux
arch: arm64
if: type != cron
compiler: clang
env: TARGET=linux-glibc OPENSSL_VERSION=1.1.1d
- os: linux
if: type == cron
compiler: clang
env: TARGET=linux-glibc OPENSSL_VERSION=1.1.1d COVERITY_SCAN_PROJECT_NAME="Haproxy" COVERITY_SCAN_BRANCH_PATTERN="*" COVERITY_SCAN_NOTIFICATION_EMAIL="chipitsine@gmail.com" 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"
- os: linux
if: type != cron
compiler: clang
env: TARGET=linux-glibc LIBRESSL_VERSION=3.0.2
- os: linux
if: type == cron
compiler: clang
env: TARGET=linux-glibc LIBRESSL_VERSION=2.9.2
- os: linux
if: type == cron
compiler: clang
env: TARGET=linux-glibc LIBRESSL_VERSION=2.8.3 EXTRA_OBJS="contrib/prometheus-exporter/service-prometheus.o"
- os: linux
if: type == cron
compiler: clang
env: TARGET=linux-glibc BORINGSSL=yes
- os: linux
if: type != cron
compiler: clang
env: TARGET=linux-glibc FLAGS=
- os: osx
if: type != cron
compiler: clang
env: TARGET=osx FLAGS="USE_OPENSSL=1" OPENSSL_VERSION=1.1.1d
- 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"
before_script:
- git clone http://git.1wt.eu/git/libslz.git/
- cd libslz && make && make PREFIX=${HOME}/opt install && cd ..
allow_failures:
- os: linux
arch: ppc64le
if: type == cron
compiler: gcc
env: TARGET=linux-glibc OPENSSL_VERSION=1.0.2u
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 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 TARGET=$TARGET $FLAGS DEBUG_CFLAGS="$DEBUG_CFLAGS" LDFLAGS="$LDFLAGS -L$SSL_LIB -Wl,-rpath,$SSL_LIB" 51DEGREES_SRC="$FIFTYONEDEGREES_SRC" EXTRA_OBJS="$EXTRA_OBJS"
- ./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