mirror of
http://git.haproxy.org/git/haproxy.git/
synced 2024-12-14 15:34:35 +00:00
d344910677
generally haproxy uses (*(volatile int*)1=0) for abort. It is not recognized by static analyzers, e.g. Coverity scan as abort, so fallback to abort() was introduced in previous commit for code analysis purpose. Let us explicitely use it for Coverity build job
148 lines
4.9 KiB
YAML
148 lines
4.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"
|
|
- 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"; 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
|
|
|
|
after_failure:
|
|
- |
|
|
for folder in ${TMPDIR}/*regtest*/vtc.*; do
|
|
cat $folder/INFO
|
|
cat $folder/LOG
|
|
done
|