73b520b958
initially SSL_LIB and SSL_INC were set globally and we assumed that any OpenSSL variant is supposed to be built using "script/build-ssl.sh". starting with ARM64 build we use stock openssl, also it makes sense to use stock openssl for 1.1.1 builds for velocity sake. Let us make stock openssl lib first class citizen. SSL_LIB and SSL_INC are only set when custom openssl variant is built.
132 lines
4.4 KiB
YAML
132 lines
4.4 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
|
|
- os: linux
|
|
arch: amd64
|
|
if: type == push
|
|
compiler: clang
|
|
env: TARGET=linux-glibc OPENSSL_VERSION=1.1.1f CC=clang-9
|
|
- os: linux
|
|
arch: arm64
|
|
if: type == push
|
|
compiler: clang
|
|
env: TARGET=linux-glibc CC=clang-9
|
|
- 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="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" 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
|
|
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
|
|
- 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"
|
|
- |
|
|
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
|
|
fi
|
|
|
|
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 CPU_CFLAGS.generic="-O1" V=1 ERR=1 TARGET=$TARGET $FLAGS DEBUG_CFLAGS="$DEBUG_CFLAGS" LDFLAGS="$LDFLAGS" $([ ! -z ${SSL_LIB+x} ] && echo 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
|