d9a6b01311
We test with both gcc and clang in order to detect cases where clang issues warnings that gcc misses. To achieve this though we don't need to build QEMU in multiple different configurations. Just a single clang-on-linux build will be sufficient, if we have an "all enabled" config. This cuts the number of build jobs from 21 to 16, reducing the load imposed on shared Travis CI infra. This will make it practical to enable jobs for other interesting & useful configurations without DOS'ing Travis to much. Signed-off-by: Daniel P. Berrange <berrange@redhat.com> Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
149 lines
4.3 KiB
YAML
149 lines
4.3 KiB
YAML
sudo: false
|
|
language: c
|
|
python:
|
|
- "2.4"
|
|
compiler:
|
|
- gcc
|
|
cache: ccache
|
|
addons:
|
|
apt:
|
|
packages:
|
|
# Build dependencies
|
|
- libaio-dev
|
|
- libattr1-dev
|
|
- libbrlapi-dev
|
|
- libcap-ng-dev
|
|
- libgnutls-dev
|
|
- libgtk-3-dev
|
|
- libiscsi-dev
|
|
- liblttng-ust-dev
|
|
- libnfs-dev
|
|
- libncurses5-dev
|
|
- libnss3-dev
|
|
- libpixman-1-dev
|
|
- libpng12-dev
|
|
- librados-dev
|
|
- libsdl1.2-dev
|
|
- libseccomp-dev
|
|
- libspice-protocol-dev
|
|
- libspice-server-dev
|
|
- libssh2-1-dev
|
|
- liburcu-dev
|
|
- libusb-1.0-0-dev
|
|
- libvte-2.90-dev
|
|
- sparse
|
|
- uuid-dev
|
|
|
|
# The channel name "irc.oftc.net#qemu" is encrypted against qemu/qemu
|
|
# to prevent IRC notifications from forks. This was created using:
|
|
# $ travis encrypt -r "qemu/qemu" "irc.oftc.net#qemu"
|
|
notifications:
|
|
irc:
|
|
channels:
|
|
- secure: "F7GDRgjuOo5IUyRLqSkmDL7kvdU4UcH3Lm/W2db2JnDHTGCqgEdaYEYKciyCLZ57vOTsTsOgesN8iUT7hNHBd1KWKjZe9KDTZWppWRYVwAwQMzVeSOsbbU4tRoJ6Pp+3qhH1Z0eGYR9ZgKYAoTumDFgSAYRp4IscKS8jkoedOqM="
|
|
on_success: change
|
|
on_failure: always
|
|
env:
|
|
global:
|
|
- TEST_CMD="make check"
|
|
matrix:
|
|
- CONFIG=""
|
|
- CONFIG="--enable-debug --enable-debug-tcg --enable-trace-backends=log"
|
|
- CONFIG="--disable-linux-aio --disable-cap-ng --disable-attr --disable-brlapi --disable-uuid --disable-libusb"
|
|
- CONFIG="--enable-modules"
|
|
- CONFIG="--with-coroutine=ucontext"
|
|
- CONFIG="--with-coroutine=sigaltstack"
|
|
git:
|
|
# we want to do this ourselves
|
|
submodules: false
|
|
before_install:
|
|
- if [ "$TRAVIS_OS_NAME" == "osx" ]; then brew update ; fi
|
|
- if [ "$TRAVIS_OS_NAME" == "osx" ]; then brew install libffi gettext glib pixman ; fi
|
|
- wget -O - http://people.linaro.org/~alex.bennee/qemu-submodule-git-seed.tar.xz | tar -xvJ
|
|
- git submodule update --init --recursive
|
|
before_script:
|
|
- ./configure ${CONFIG}
|
|
script:
|
|
- make -j3 && ${TEST_CMD}
|
|
matrix:
|
|
include:
|
|
# Test with CLang for compile portability
|
|
- env: CONFIG=""
|
|
compiler: clang
|
|
# gprof/gcov are GCC features
|
|
- env: CONFIG="--enable-gprof --enable-gcov --disable-pie"
|
|
compiler: gcc
|
|
# We manually include builds which we disable "make check" for
|
|
- env: CONFIG="--enable-debug --enable-tcg-interpreter"
|
|
TEST_CMD=""
|
|
compiler: gcc
|
|
- env: CONFIG="--enable-trace-backends=simple"
|
|
TEST_CMD=""
|
|
compiler: gcc
|
|
- env: CONFIG="--enable-trace-backends=ftrace"
|
|
TEST_CMD=""
|
|
compiler: gcc
|
|
- env: CONFIG="--enable-trace-backends=ust"
|
|
TEST_CMD=""
|
|
compiler: gcc
|
|
- env: CONFIG="--with-coroutine=gthread"
|
|
TEST_CMD=""
|
|
compiler: gcc
|
|
- env: CONFIG=""
|
|
os: osx
|
|
compiler: clang
|
|
# Plain Trusty Build
|
|
- env: CONFIG=""
|
|
sudo: required
|
|
addons:
|
|
dist: trusty
|
|
compiler: gcc
|
|
before_install:
|
|
- sudo apt-get update -qq
|
|
- sudo apt-get build-dep -qq qemu
|
|
- wget -O - http://people.linaro.org/~alex.bennee/qemu-submodule-git-seed.tar.xz | tar -xvJ
|
|
- git submodule update --init --recursive
|
|
# Using newer GCC with sanitizers
|
|
- addons:
|
|
apt:
|
|
sources:
|
|
# PPAs for newer toolchains
|
|
- ubuntu-toolchain-r-test
|
|
packages:
|
|
# Extra toolchains
|
|
- gcc-5
|
|
- g++-5
|
|
# Build dependencies
|
|
- libaio-dev
|
|
- libattr1-dev
|
|
- libbrlapi-dev
|
|
- libcap-ng-dev
|
|
- libgnutls-dev
|
|
- libgtk-3-dev
|
|
- libiscsi-dev
|
|
- liblttng-ust-dev
|
|
- libnfs-dev
|
|
- libncurses5-dev
|
|
- libnss3-dev
|
|
- libpixman-1-dev
|
|
- libpng12-dev
|
|
- librados-dev
|
|
- libsdl1.2-dev
|
|
- libseccomp-dev
|
|
- libspice-protocol-dev
|
|
- libspice-server-dev
|
|
- libssh2-1-dev
|
|
- liburcu-dev
|
|
- libusb-1.0-0-dev
|
|
- libvte-2.90-dev
|
|
- sparse
|
|
- uuid-dev
|
|
language: generic
|
|
compiler: none
|
|
env:
|
|
- COMPILER_NAME=gcc CXX=g++-5 CC=gcc-5
|
|
- CONFIG="--cc=gcc-5 --cxx=g++-5 --disable-pie --disable-linux-user --with-coroutine=gthread"
|
|
- TEST_CMD=""
|
|
before_script:
|
|
- ./configure ${CONFIG} --extra-cflags="-g3 -O0 -fsanitize=thread -fuse-ld=gold" || cat config.log
|