195310576SAlex Bennée# The current Travis default is a VM based 16.04 Xenial on GCE 295310576SAlex Bennée# Additional builds with specific requirements for a full VM need to 395310576SAlex Bennée# be added as additional matrix: entries later on 495310576SAlex Bennéedist: xenial 5fe863ab9SAlex Bennéelanguage: c 6fe863ab9SAlex Bennéecompiler: 7fe863ab9SAlex Bennée - gcc 84bc629b2SPhilippe Mathieu-Daudécache: 9731cbb64SPhilippe Mathieu-Daudé timeout: 1200 104bc629b2SPhilippe Mathieu-Daudé ccache: true 116e189d78SPhilippe Mathieu-Daudé pip: true 12c1073e44SPhilippe Mathieu-Daudé directories: 13c1073e44SPhilippe Mathieu-Daudé - $HOME/avocado/data/cache 14197be697SDaniel P. Berrangé 15197be697SDaniel P. Berrangé 16692d162cSAlex Bennéeaddons: 17692d162cSAlex Bennée apt: 18692d162cSAlex Bennée packages: 1932265288SAlex Bennée # Build dependencies 20692d162cSAlex Bennée - libaio-dev 21692d162cSAlex Bennée - libattr1-dev 22692d162cSAlex Bennée - libbrlapi-dev 23692d162cSAlex Bennée - libcap-ng-dev 247524a39dSPhilippe Mathieu-Daudé - libgcc-4.8-dev 25692d162cSAlex Bennée - libgnutls-dev 26692d162cSAlex Bennée - libgtk-3-dev 27692d162cSAlex Bennée - libiscsi-dev 28692d162cSAlex Bennée - liblttng-ust-dev 29692d162cSAlex Bennée - libncurses5-dev 30d83414e1SMarc-André Lureau - libnfs-dev 31692d162cSAlex Bennée - libnss3-dev 32692d162cSAlex Bennée - libpixman-1-dev 33692d162cSAlex Bennée - libpng12-dev 34692d162cSAlex Bennée - librados-dev 35692d162cSAlex Bennée - libsdl1.2-dev 36692d162cSAlex Bennée - libseccomp-dev 37692d162cSAlex Bennée - libspice-protocol-dev 38692d162cSAlex Bennée - libspice-server-dev 39b10d49d7SPino Toscano - libssh-dev 40692d162cSAlex Bennée - liburcu-dev 41692d162cSAlex Bennée - libusb-1.0-0-dev 4295310576SAlex Bennée - libvte-2.91-dev 43692d162cSAlex Bennée - sparse 44692d162cSAlex Bennée - uuid-dev 450708e647SAlex Bennée - gcovr 4691fa7dd1SAlex Bennée homebrew: 4791fa7dd1SAlex Bennée packages: 48*0d8773c2SPhilippe Mathieu-Daudé - ccache 4991fa7dd1SAlex Bennée - glib 5091fa7dd1SAlex Bennée - pixman 51db2b95d5SThomas Huth - gnu-sed 5271451cffSAlex Bennée update: true 53692d162cSAlex Bennée 54197be697SDaniel P. Berrangé 55cb4c2536SPranith Kumar# The channel name "irc.oftc.net#qemu" is encrypted against qemu/qemu 56cb4c2536SPranith Kumar# to prevent IRC notifications from forks. This was created using: 57cb4c2536SPranith Kumar# $ travis encrypt -r "qemu/qemu" "irc.oftc.net#qemu" 5839d16d29SAlex Bennéenotifications: 5939d16d29SAlex Bennée irc: 6039d16d29SAlex Bennée channels: 61cb4c2536SPranith Kumar - secure: "F7GDRgjuOo5IUyRLqSkmDL7kvdU4UcH3Lm/W2db2JnDHTGCqgEdaYEYKciyCLZ57vOTsTsOgesN8iUT7hNHBd1KWKjZe9KDTZWppWRYVwAwQMzVeSOsbbU4tRoJ6Pp+3qhH1Z0eGYR9ZgKYAoTumDFgSAYRp4IscKS8jkoedOqM=" 6239d16d29SAlex Bennée on_success: change 6339d16d29SAlex Bennée on_failure: always 64197be697SDaniel P. Berrangé 65197be697SDaniel P. Berrangé 66fe863ab9SAlex Bennéeenv: 67fe863ab9SAlex Bennée global: 68ebf2ff65SPhilippe Mathieu-Daudé - SRC_DIR="." 69ebf2ff65SPhilippe Mathieu-Daudé - BUILD_DIR="." 70570f3c77SAlex Bennée - BASE_CONFIG="--disable-docs --disable-tools" 71e2576f9bSDaniel P. Berrangé - TEST_CMD="make check -j3 V=1" 728c3daf97SAlex Bennée # This is broadly a list of "mainline" softmmu targets which have support across the major distros 738c3daf97SAlex Bennée - MAIN_SOFTMMU_TARGETS="aarch64-softmmu,arm-softmmu,i386-softmmu,mips-softmmu,mips64-softmmu,ppc64-softmmu,riscv64-softmmu,s390x-softmmu,x86_64-softmmu" 74bcfbf0d5SPhilippe Mathieu-Daudé - CCACHE_SLOPPINESS="include_file_ctime,include_file_mtime" 75bcfbf0d5SPhilippe Mathieu-Daudé - CCACHE_MAXSIZE=1G 76bcfbf0d5SPhilippe Mathieu-Daudé 77197be697SDaniel P. Berrangé 78cb021cfeSAlex Bennéegit: 79cb021cfeSAlex Bennée # we want to do this ourselves 80cb021cfeSAlex Bennée submodules: false 81197be697SDaniel P. Berrangé 82197be697SDaniel P. Berrangé 83eebf2940SAlex Bennéebefore_script: 84*0d8773c2SPhilippe Mathieu-Daudé - if [ "$TRAVIS_OS_NAME" == "osx" ] ; then export PATH="/usr/local/opt/ccache/libexec:$PATH" ; fi 85bcfbf0d5SPhilippe Mathieu-Daudé - command -v ccache && ccache --zero-stats 86ebf2ff65SPhilippe Mathieu-Daudé - mkdir -p ${BUILD_DIR} && cd ${BUILD_DIR} 87570f3c77SAlex Bennée - ${SRC_DIR}/configure ${BASE_CONFIG} ${CONFIG} || { cat config.log && exit 1; } 88eebf2940SAlex Bennéescript: 893a37c13fSAlex Bennée - make -j3 && travis_retry ${TEST_CMD} 90bcfbf0d5SPhilippe Mathieu-Daudéafter_script: 91bcfbf0d5SPhilippe Mathieu-Daudé - command -v ccache && ccache --show-stats 92197be697SDaniel P. Berrangé 93197be697SDaniel P. Berrangé 94fe863ab9SAlex Bennéematrix: 95fe863ab9SAlex Bennée include: 96c21d7efcSDaniel P. Berrangé - env: 97c3c1874aSAlex Bennée - CONFIG="--disable-system --static" 983e094234SDaniel P. Berrangé 993e094234SDaniel P. Berrangé 1008c3daf97SAlex Bennée # we split the system builds as it takes a while to build them all 101c21d7efcSDaniel P. Berrangé - env: 1028c3daf97SAlex Bennée - CONFIG="--disable-user --target-list=${MAIN_SOFTMMU_TARGETS}" 1038c3daf97SAlex Bennée 1048c3daf97SAlex Bennée 1058c3daf97SAlex Bennée - env: 1068c3daf97SAlex Bennée - CONFIG="--disable-user --target-list-exclude=${MAIN_SOFTMMU_TARGETS}" 1073e094234SDaniel P. Berrangé 1083e094234SDaniel P. Berrangé 109df2bb38eSAlex Bennée # Just build tools and run minimal unit and softfloat checks 110df2bb38eSAlex Bennée - env: 111df2bb38eSAlex Bennée - BASE_CONFIG="--enable-tools" 112df2bb38eSAlex Bennée - CONFIG="--disable-user --disable-system" 113df2bb38eSAlex Bennée - TEST_CMD="make check-unit check-softfloat -j3" 114df2bb38eSAlex Bennée 115c21d7efcSDaniel P. Berrangé - env: 1164e6e7df6SAlex Bennée - CONFIG="--enable-debug --enable-debug-tcg --disable-user" 1174e6e7df6SAlex Bennée 1184e6e7df6SAlex Bennée 1194e6e7df6SAlex Bennée # TCG debug can be run just on it's own and is mostly agnostic to user/softmmu distinctions 1204e6e7df6SAlex Bennée - env: 1214e6e7df6SAlex Bennée - CONFIG="--enable-debug-tcg --disable-system" 1223e094234SDaniel P. Berrangé 1233e094234SDaniel P. Berrangé 124c21d7efcSDaniel P. Berrangé - env: 125aec2927dSAlex Bennée - CONFIG="--disable-linux-aio --disable-cap-ng --disable-attr --disable-brlapi --disable-libusb --disable-replication --target-list=${MAIN_SOFTMMU_TARGETS}" 1263e094234SDaniel P. Berrangé 1273e094234SDaniel P. Berrangé 1282f6c2526SAlex Bennée # Module builds are mostly of interest to major distros 129c21d7efcSDaniel P. Berrangé - env: 1308c3daf97SAlex Bennée - CONFIG="--enable-modules --target-list=${MAIN_SOFTMMU_TARGETS}" 1313e094234SDaniel P. Berrangé 1323e094234SDaniel P. Berrangé 133f3908ff7SAlex Bennée # Alternate coroutines implementations are only really of interest to KVM users 134f3908ff7SAlex Bennée # However we can't test against KVM on Travis so we can only run unit tests 135c21d7efcSDaniel P. Berrangé - env: 136f3908ff7SAlex Bennée - CONFIG="--with-coroutine=ucontext --disable-tcg" 137f3908ff7SAlex Bennée - TEST_CMD="make check-unit -j3 V=1" 1383e094234SDaniel P. Berrangé 1393e094234SDaniel P. Berrangé 140c21d7efcSDaniel P. Berrangé - env: 141f3908ff7SAlex Bennée - CONFIG="--with-coroutine=sigaltstack --disable-tcg" 142f3908ff7SAlex Bennée - TEST_CMD="make check-unit -j3 V=1" 1433e094234SDaniel P. Berrangé 1443e094234SDaniel P. Berrangé 145956d4506SAlex Bennée # Check we can build docs and tools (out of tree) 146570f3c77SAlex Bennée - env: 147956d4506SAlex Bennée - BUILD_DIR="out-of-tree/build/dir" SRC_DIR="../../.." 148570f3c77SAlex Bennée - BASE_CONFIG="--enable-tools --enable-docs" 149570f3c77SAlex Bennée - CONFIG="--target-list=x86_64-softmmu,aarch64-linux-user" 150570f3c77SAlex Bennée addons: 151570f3c77SAlex Bennée apt: 152570f3c77SAlex Bennée packages: 153570f3c77SAlex Bennée - python-sphinx 154570f3c77SAlex Bennée - texinfo 155570f3c77SAlex Bennée - perl 156570f3c77SAlex Bennée 157197be697SDaniel P. Berrangé 158ae6d692dSAlex Bennée # Test with Clang for compile portability (Travis uses clang-5.0) 159c21d7efcSDaniel P. Berrangé - env: 160c21d7efcSDaniel P. Berrangé - CONFIG="--disable-system" 161ae6d692dSAlex Bennée compiler: clang 162197be697SDaniel P. Berrangé 163197be697SDaniel P. Berrangé 164c21d7efcSDaniel P. Berrangé - env: 1658c3daf97SAlex Bennée - CONFIG="--disable-user --target-list=${MAIN_SOFTMMU_TARGETS}" 1668c3daf97SAlex Bennée compiler: clang 1678c3daf97SAlex Bennée 1688c3daf97SAlex Bennée 1698c3daf97SAlex Bennée - env: 1707831147eSAlex Bennée - CONFIG="--target-list=${MAIN_SOFTMMU_TARGETS} " 1717831147eSAlex Bennée compiler: clang 1727831147eSAlex Bennée before_script: 1737831147eSAlex Bennée - ./configure ${CONFIG} --extra-cflags="-fsanitize=undefined -Werror" || { cat config.log && exit 1; } 1747831147eSAlex Bennée 1757831147eSAlex Bennée 1767831147eSAlex Bennée - env: 1778c3daf97SAlex Bennée - CONFIG="--disable-user --target-list-exclude=${MAIN_SOFTMMU_TARGETS}" 178d9a6b013SDaniel P. Berrange compiler: clang 179197be697SDaniel P. Berrangé 180197be697SDaniel P. Berrangé 1816c933291SAlex Bennée # gprof/gcov are GCC features 182c21d7efcSDaniel P. Berrangé - env: 1838c3daf97SAlex Bennée - CONFIG="--enable-gprof --enable-gcov --disable-pie --target-list=${MAIN_SOFTMMU_TARGETS}" 1840708e647SAlex Bennée after_success: 1850708e647SAlex Bennée - ${SRC_DIR}/scripts/travis/coverage-summary.sh 186197be697SDaniel P. Berrangé 187197be697SDaniel P. Berrangé 1886c933291SAlex Bennée # We manually include builds which we disable "make check" for 189c21d7efcSDaniel P. Berrangé - env: 190386dc514SAlex Bennée - CONFIG="--without-default-devices --disable-user" 19120885b5bSPaolo Bonzini - TEST_CMD="" 19220885b5bSPaolo Bonzini 19320885b5bSPaolo Bonzini 19420885b5bSPaolo Bonzini # We manually include builds which we disable "make check" for 19520885b5bSPaolo Bonzini - env: 196c21d7efcSDaniel P. Berrangé - CONFIG="--enable-debug --enable-tcg-interpreter" 197c21d7efcSDaniel P. Berrangé - TEST_CMD="" 198197be697SDaniel P. Berrangé 199197be697SDaniel P. Berrangé 200f8309de9SAlex Bennée # We don't need to exercise every backend with every front-end 201c21d7efcSDaniel P. Berrangé - env: 202c21d7efcSDaniel P. Berrangé - CONFIG="--enable-trace-backends=log,simple,syslog --disable-system" 203c21d7efcSDaniel P. Berrangé - TEST_CMD="" 204197be697SDaniel P. Berrangé 205197be697SDaniel P. Berrangé 206c21d7efcSDaniel P. Berrangé - env: 207c21d7efcSDaniel P. Berrangé - CONFIG="--enable-trace-backends=ftrace --target-list=x86_64-softmmu" 208c21d7efcSDaniel P. Berrangé - TEST_CMD="" 209197be697SDaniel P. Berrangé 210197be697SDaniel P. Berrangé 211c21d7efcSDaniel P. Berrangé - env: 212c21d7efcSDaniel P. Berrangé - CONFIG="--enable-trace-backends=ust --target-list=x86_64-softmmu" 213c21d7efcSDaniel P. Berrangé - TEST_CMD="" 214197be697SDaniel P. Berrangé 215197be697SDaniel P. Berrangé 216adcf9683SAlex Bennée # MacOSX builds 217c21d7efcSDaniel P. Berrangé - env: 2188c3daf97SAlex Bennée - CONFIG="--target-list=${MAIN_SOFTMMU_TARGETS}" 2191d002037SAlex Bennée os: osx 220adcf9683SAlex Bennée osx_image: xcode9.4 221adcf9683SAlex Bennée compiler: clang 222197be697SDaniel P. Berrangé 223197be697SDaniel P. Berrangé 224cd7507cbSPhilippe Mathieu-Daudé - env: 225cd7507cbSPhilippe Mathieu-Daudé - CONFIG="--target-list=i386-softmmu,ppc-softmmu,ppc64-softmmu,m68k-softmmu,x86_64-softmmu" 226cd7507cbSPhilippe Mathieu-Daudé os: osx 227cd7507cbSPhilippe Mathieu-Daudé osx_image: xcode10.2 228cd7507cbSPhilippe Mathieu-Daudé compiler: clang 229cd7507cbSPhilippe Mathieu-Daudé 230cd7507cbSPhilippe Mathieu-Daudé 231ae6d692dSAlex Bennée # Python builds 232c21d7efcSDaniel P. Berrangé - env: 233c21d7efcSDaniel P. Berrangé - CONFIG="--target-list=x86_64-softmmu" 23453fefde4SCleber Rosa language: python 2358e73a3c5SDaniel P. Berrange python: 23653fefde4SCleber Rosa - "3.4" 237197be697SDaniel P. Berrangé 238197be697SDaniel P. Berrangé 239c21d7efcSDaniel P. Berrangé - env: 240c21d7efcSDaniel P. Berrangé - CONFIG="--target-list=x86_64-softmmu" 24153fefde4SCleber Rosa language: python 2428e73a3c5SDaniel P. Berrange python: 2438e73a3c5SDaniel P. Berrange - "3.6" 244197be697SDaniel P. Berrangé 245197be697SDaniel P. Berrangé 246aa983ff6SCleber Rosa # Acceptance (Functional) tests 247c21d7efcSDaniel P. Berrangé - env: 24825311649SPhilippe Mathieu-Daudé - CONFIG="--python=/usr/bin/python3 --target-list=x86_64-softmmu,mips-softmmu,mips64el-softmmu,aarch64-softmmu,arm-softmmu,s390x-softmmu,alpha-softmmu,ppc64-softmmu,m68k-softmmu" 2490b98c20aSEduardo Habkost - TEST_CMD="make check-acceptance" 250c21f30ebSCleber Rosa after_failure: 251c21f30ebSCleber Rosa - cat tests/results/latest/job.log 252aa983ff6SCleber Rosa addons: 253aa983ff6SCleber Rosa apt: 254aa983ff6SCleber Rosa packages: 25525311649SPhilippe Mathieu-Daudé - python3-pil 256aa983ff6SCleber Rosa - python3-pip 25795310576SAlex Bennée - python3.5-venv 25825311649SPhilippe Mathieu-Daudé - tesseract-ocr 25925311649SPhilippe Mathieu-Daudé - tesseract-ocr-eng 26025311649SPhilippe Mathieu-Daudé 26125311649SPhilippe Mathieu-Daudé 26232265288SAlex Bennée # Using newer GCC with sanitizers 26332265288SAlex Bennée - addons: 26432265288SAlex Bennée apt: 265ac07ffc6SAlex Bennée update: true 26632265288SAlex Bennée sources: 26732265288SAlex Bennée # PPAs for newer toolchains 26832265288SAlex Bennée - ubuntu-toolchain-r-test 26932265288SAlex Bennée packages: 27032265288SAlex Bennée # Extra toolchains 2713998c25eSAlex Bennée - gcc-9 2723998c25eSAlex Bennée - g++-9 27332265288SAlex Bennée # Build dependencies 27432265288SAlex Bennée - libaio-dev 27532265288SAlex Bennée - libattr1-dev 27632265288SAlex Bennée - libbrlapi-dev 27732265288SAlex Bennée - libcap-ng-dev 27832265288SAlex Bennée - libgnutls-dev 27932265288SAlex Bennée - libgtk-3-dev 28032265288SAlex Bennée - libiscsi-dev 28132265288SAlex Bennée - liblttng-ust-dev 28232265288SAlex Bennée - libnfs-dev 28332265288SAlex Bennée - libncurses5-dev 28432265288SAlex Bennée - libnss3-dev 28532265288SAlex Bennée - libpixman-1-dev 28632265288SAlex Bennée - libpng12-dev 28732265288SAlex Bennée - librados-dev 28832265288SAlex Bennée - libsdl1.2-dev 28932265288SAlex Bennée - libseccomp-dev 29032265288SAlex Bennée - libspice-protocol-dev 29132265288SAlex Bennée - libspice-server-dev 292b10d49d7SPino Toscano - libssh-dev 29332265288SAlex Bennée - liburcu-dev 29432265288SAlex Bennée - libusb-1.0-0-dev 29595310576SAlex Bennée - libvte-2.91-dev 29632265288SAlex Bennée - sparse 29732265288SAlex Bennée - uuid-dev 29832265288SAlex Bennée language: generic 29932265288SAlex Bennée compiler: none 30032265288SAlex Bennée env: 3013998c25eSAlex Bennée - COMPILER_NAME=gcc CXX=g++-9 CC=gcc-9 3023998c25eSAlex Bennée - CONFIG="--cc=gcc-9 --cxx=g++-9 --disable-pie --disable-linux-user" 30332265288SAlex Bennée - TEST_CMD="" 30432265288SAlex Bennée before_script: 3053998c25eSAlex Bennée - ./configure ${CONFIG} --extra-cflags="-g3 -O0 -Wno-error=stringop-truncation -fsanitize=thread -fuse-ld=gold" || { cat config.log && exit 1; } 306197be697SDaniel P. Berrangé 307197be697SDaniel P. Berrangé 308dab3a7c0SAlex Bennée # Run check-tcg against linux-user 30965b26da4SAlex Bennée - env: 310570f3c77SAlex Bennée - CONFIG="--disable-system" 311e2576f9bSDaniel P. Berrangé - TEST_CMD="make -j3 check-tcg V=1" 312dab3a7c0SAlex Bennée 313dab3a7c0SAlex Bennée # Run check-tcg against softmmu targets 314dab3a7c0SAlex Bennée - env: 315591ff1ffSAlex Bennée - CONFIG="--target-list=xtensa-softmmu,arm-softmmu,aarch64-softmmu,alpha-softmmu" 316dab3a7c0SAlex Bennée - TEST_CMD="make -j3 check-tcg V=1" 317