mirror of https://github.com/OISF/suricata
travis: use a build matrix and add additional builds
The following builds were added: - linux, clang with -Wshadow - linux w/ profiling - linux w/ debug - linux w/ no-json support Removes the extra OS X build. Travis file was reworked signficantly for readabilty.pull/2447/head
parent
92885d6960
commit
94bc7e5f5f
@ -1,26 +1,125 @@
|
||||
os:
|
||||
- linux
|
||||
- osx
|
||||
osx_image: xcode8.1
|
||||
# Default parameters, even this default build is excluded in the build
|
||||
# matrix below. We define so Travis doesn't think this is a Ruby
|
||||
# project.
|
||||
os: linux
|
||||
language: c
|
||||
env:
|
||||
- CFLAGS="-Wall -Wextra -Werror -Wno-unused-parameter -Wno-unused-function"
|
||||
compiler:
|
||||
- gcc
|
||||
- clang
|
||||
compiler: gcc
|
||||
|
||||
# Define the default CFLAGS used by all builds as a YAML anchor.
|
||||
default-cflags: &default-cflags
|
||||
CFLAGS="-Wall -Wextra -Werror -Wno-unused-parameter -Wno-unused-function"
|
||||
|
||||
# The default build is Linux with gcc. Add additional builds to the
|
||||
# matrix here.
|
||||
matrix:
|
||||
# Exclude the default build so any the builds in the matrix will be done.
|
||||
exclude:
|
||||
- os: linux
|
||||
compiler: gcc
|
||||
include:
|
||||
# Linux, gcc, cocci tests enabled.
|
||||
- os: linux
|
||||
compiler: gcc
|
||||
env:
|
||||
- NAME="linux,gcc,cocci"
|
||||
- *default-cflags
|
||||
- ENABLE_COCCI="yes"
|
||||
# Linux, clang. For this build we'll also enable -Wshadow.
|
||||
- os: linux
|
||||
compiler: clang
|
||||
env:
|
||||
- NAME="linux,clang"
|
||||
- *default-cflags
|
||||
- EXTRA_CFLAGS="-Wshadow"
|
||||
# Linux, gcc, profiling.
|
||||
- os: linux
|
||||
compiler: gcc
|
||||
env:
|
||||
- NAME="linux,gcc,profiling"
|
||||
- *default-cflags
|
||||
- ARGS="--enable-profiling"
|
||||
# Linux, gcc, debug.
|
||||
- os: linux
|
||||
compiler: gcc
|
||||
env:
|
||||
- NAME="linux,gcc,debug"
|
||||
- *default-cflags
|
||||
- ARGS="--enable-debug"
|
||||
- ENABLE_DEBUG="yes"
|
||||
# Linux, gcc, no json support.
|
||||
- os: linux
|
||||
compiler: gcc
|
||||
env:
|
||||
- NAME="linux,gcc,no-json"
|
||||
- *default-cflags
|
||||
- DISABLE_JSON="yes"
|
||||
# OSX 10.12, XCode 8.1.
|
||||
- os: osx
|
||||
compiler: gcc
|
||||
osx_image: xcode8.1
|
||||
env:
|
||||
- NAME="osx,gcc"
|
||||
- *default-cflags
|
||||
|
||||
# Change this to your needs
|
||||
script:
|
||||
- sh autogen.sh
|
||||
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then ./configure --enable-nfqueue --enable-unittests --enable-hiredis; fi
|
||||
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then ./configure --enable-unittests --enable-hiredis --enable-ipfw --enable-lua --with-libpcre-includes=/usr/local/include --with-libpcre-includes=/usr/local/include --with-libpcre-libraries=/usr/local/lib --with-libnss-includes=/usr/local/opt/nss/include/nss --with-libnss-libraries=/usr/local/opt/nss/lib --with-libnspr-includes=/usr/local/opt/nspr/include/nspr --with-libnspr-libraries=/usr/local/opt/nspr/lib; fi
|
||||
- |
|
||||
if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then
|
||||
./configure --enable-nfqueue --enable-unittests --enable-hiredis ${ARGS}
|
||||
fi
|
||||
- |
|
||||
if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then
|
||||
export CFLAGS="${CFLAGS} ${EXTRA_CFLAGS}"
|
||||
./configure --enable-unittests --enable-hiredis --enable-ipfw \
|
||||
--enable-lua --with-libpcre-includes=/usr/local/include \
|
||||
--with-libpcre-includes=/usr/local/include \
|
||||
--with-libpcre-libraries=/usr/local/lib \
|
||||
--with-libnss-includes=/usr/local/opt/nss/include/nss \
|
||||
--with-libnss-libraries=/usr/local/opt/nss/lib \
|
||||
--with-libnspr-includes=/usr/local/opt/nspr/include/nspr \
|
||||
--with-libnspr-libraries=/usr/local/opt/nspr/lib
|
||||
fi
|
||||
- make
|
||||
- make check
|
||||
# With debug enabled too much output is generated for Travis, so
|
||||
# redirect stderr to a file.
|
||||
- |
|
||||
if [[ "$ENABLE_DEBUG" == "yes" ]]; then
|
||||
make check 2> stderr.log
|
||||
else
|
||||
make check
|
||||
fi
|
||||
before_install:
|
||||
- if [[ "$TRAVIS_OS_NAME" == "linux" && "$CC" == "gcc" ]]; then sudo add-apt-repository -y ppa:npalix/coccinelle; fi
|
||||
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then sudo apt-get update -qq; fi
|
||||
- if [[ "$TRAVIS_OS_NAME" == "linux" && "$CC" == "gcc" ]]; then sudo apt-get install -y libpcre3 libpcre3-dbg libpcre3-dev build-essential autoconf automake libtool libpcap-dev libnet1-dev libyaml-0-2 libyaml-dev zlib1g zlib1g-dev libcap-ng-dev libcap-ng0 make libmagic-dev libnetfilter-queue-dev libnetfilter-queue1 libnfnetlink-dev libnfnetlink0 coccinelle libjansson-dev libhiredis-dev; fi
|
||||
- if [[ "$TRAVIS_OS_NAME" == "linux" && "$CC" == "clang" ]]; then sudo apt-get install -y libpcre3 libpcre3-dbg libpcre3-dev build-essential autoconf automake libtool libpcap-dev libnet1-dev libyaml-0-2 libyaml-dev zlib1g zlib1g-dev libcap-ng-dev libcap-ng0 make libmagic-dev libnetfilter-queue-dev libnetfilter-queue1 libnfnetlink-dev libnfnetlink0 libjansson-dev libhiredis-dev; fi
|
||||
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew update; fi
|
||||
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew install pkg-config libmagic libyaml nss nspr jansson libnet lua pcre hiredis; fi
|
||||
- |
|
||||
if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then
|
||||
|
||||
if [[ "$ENABLE_COCCI" == "yes" ]]; then
|
||||
sudo add-apt-repository -y ppa:npalix/coccinelle
|
||||
fi
|
||||
|
||||
sudo apt-get update -qq
|
||||
sudo apt-get install -y libpcre3 libpcre3-dbg libpcre3-dev \
|
||||
build-essential autoconf automake libtool libpcap-dev libnet1-dev \
|
||||
libyaml-0-2 libyaml-dev zlib1g zlib1g-dev libcap-ng-dev \
|
||||
libcap-ng0 make libmagic-dev libnetfilter-queue-dev \
|
||||
libnetfilter-queue1 libnfnetlink-dev libnfnetlink0 \
|
||||
libhiredis-dev
|
||||
|
||||
|
||||
if [[ "$ENABLE_COCCI" == "yes" ]]; then
|
||||
sudo apt-get install -y coccinelle
|
||||
fi
|
||||
|
||||
if [[ "$DISABLE_JSON" != "yes" ]]; then
|
||||
sudo apt-get install -y libjansson-dev
|
||||
fi
|
||||
|
||||
fi
|
||||
- |
|
||||
if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then
|
||||
brew update
|
||||
brew install pkg-config libmagic libyaml nss nspr jansson libnet lua \
|
||||
pcre hiredis
|
||||
fi
|
||||
- ./qa/travis-libhtp.sh
|
||||
|
||||
|
Loading…
Reference in New Issue