diff options
-rw-r--r-- | .travis.yml | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/.travis.yml b/.travis.yml index d472fd650b..bb43792627 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,6 +1,7 @@ # The current Travis default is a container based 14.04 Trust on EC2 # Additional builds with specific requirements for a full VM need to # be added as additional matrix: entries later on + sudo: false dist: trusty language: c @@ -9,6 +10,8 @@ python: compiler: - gcc cache: ccache + + addons: apt: packages: @@ -40,6 +43,7 @@ addons: - uuid-dev - gcovr + # 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" @@ -49,6 +53,8 @@ notifications: - secure: "F7GDRgjuOo5IUyRLqSkmDL7kvdU4UcH3Lm/W2db2JnDHTGCqgEdaYEYKciyCLZ57vOTsTsOgesN8iUT7hNHBd1KWKjZe9KDTZWppWRYVwAwQMzVeSOsbbU4tRoJ6Pp+3qhH1Z0eGYR9ZgKYAoTumDFgSAYRp4IscKS8jkoedOqM=" on_success: change on_failure: always + + env: global: - SRC_DIR="." @@ -63,9 +69,13 @@ env: - CONFIG="--enable-modules --disable-linux-user" - CONFIG="--with-coroutine=ucontext --disable-linux-user" - CONFIG="--with-coroutine=sigaltstack --disable-linux-user" + + 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 @@ -75,54 +85,82 @@ before_script: - ${SRC_DIR}/configure ${CONFIG} || { cat config.log && exit 1; } script: - make ${MAKEFLAGS} && ${TEST_CMD} + + matrix: include: # Test out-of-tree builds - env: CONFIG="--enable-debug --enable-debug-tcg" BUILD_DIR="out-of-tree/build/dir" SRC_DIR="../../.." + + # Test with Clang for compile portability (Travis uses clang-5.0) - env: CONFIG="--disable-system" compiler: clang + + - env: CONFIG="--disable-user" compiler: clang + + # gprof/gcov are GCC features - env: CONFIG="--enable-gprof --enable-gcov --disable-pie --target-list=aarch64-softmmu,arm-softmmu,i386-softmmu,mips-softmmu,mips64-softmmu,ppc64-softmmu,riscv64-softmmu,s390x-softmmu,x86_64-softmmu" after_success: - ${SRC_DIR}/scripts/travis/coverage-summary.sh compiler: gcc + + # We manually include builds which we disable "make check" for - env: CONFIG="--enable-debug --enable-tcg-interpreter" TEST_CMD="" compiler: gcc + + # We don't need to exercise every backend with every front-end - env: CONFIG="--enable-trace-backends=log,simple,syslog --disable-system" TEST_CMD="" compiler: gcc + + - env: CONFIG="--enable-trace-backends=ftrace --target-list=x86_64-softmmu" TEST_CMD="" compiler: gcc + + - env: CONFIG="--enable-trace-backends=ust --target-list=x86_64-softmmu" TEST_CMD="" compiler: gcc + + - env: CONFIG="--disable-tcg" TEST_CMD="" compiler: gcc + + # MacOSX builds - env: CONFIG="--target-list=aarch64-softmmu,arm-softmmu,i386-softmmu,mips-softmmu,mips64-softmmu,ppc64-softmmu,riscv64-softmmu,s390x-softmmu,x86_64-softmmu" os: osx osx_image: xcode9.4 compiler: clang + + - env: CONFIG="--target-list=i386-softmmu,ppc-softmmu,ppc64-softmmu,m68k-softmmu,x86_64-softmmu" os: osx osx_image: xcode10 compiler: clang + + # Python builds - env: CONFIG="--target-list=x86_64-softmmu" python: - "3.0" + + - env: CONFIG="--target-list=x86_64-softmmu" python: - "3.6" + + # Acceptance (Functional) tests - env: CONFIG="--python=/usr/bin/python3 --target-list=x86_64-softmmu" TEST_CMD="make AVOCADO_SHOW=app check-acceptance" @@ -131,6 +169,8 @@ matrix: packages: - python3-pip - python3.4-venv + + # Using newer GCC with sanitizers - addons: apt: @@ -175,6 +215,8 @@ matrix: - TEST_CMD="" before_script: - ./configure ${CONFIG} --extra-cflags="-g3 -O0 -fsanitize=thread -fuse-ld=gold" || { cat config.log && exit 1; } + + - env: - CONFIG="--disable-system --disable-docs" - TEST_CMD="make check-tcg" |