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 84c33d42dSAlex Bennéecache: ccache 9197be697SDaniel P. Berrangé 10197be697SDaniel P. Berrangé 11692d162cSAlex Bennéeaddons: 12692d162cSAlex Bennée apt: 13692d162cSAlex Bennée packages: 1432265288SAlex Bennée # Build dependencies 15692d162cSAlex Bennée - libaio-dev 16692d162cSAlex Bennée - libattr1-dev 17692d162cSAlex Bennée - libbrlapi-dev 18692d162cSAlex Bennée - libcap-ng-dev 197524a39dSPhilippe Mathieu-Daudé - libgcc-4.8-dev 20692d162cSAlex Bennée - libgnutls-dev 21692d162cSAlex Bennée - libgtk-3-dev 22692d162cSAlex Bennée - libiscsi-dev 23692d162cSAlex Bennée - liblttng-ust-dev 24692d162cSAlex Bennée - libncurses5-dev 25d83414e1SMarc-André Lureau - libnfs-dev 26692d162cSAlex Bennée - libnss3-dev 27692d162cSAlex Bennée - libpixman-1-dev 28692d162cSAlex Bennée - libpng12-dev 29692d162cSAlex Bennée - librados-dev 30692d162cSAlex Bennée - libsdl1.2-dev 31692d162cSAlex Bennée - libseccomp-dev 32692d162cSAlex Bennée - libspice-protocol-dev 33692d162cSAlex Bennée - libspice-server-dev 34b10d49d7SPino Toscano - libssh-dev 35692d162cSAlex Bennée - liburcu-dev 36692d162cSAlex Bennée - libusb-1.0-0-dev 3795310576SAlex Bennée - libvte-2.91-dev 38692d162cSAlex Bennée - sparse 39692d162cSAlex Bennée - uuid-dev 400708e647SAlex Bennée - gcovr 4191fa7dd1SAlex Bennée homebrew: 4291fa7dd1SAlex Bennée packages: 4391fa7dd1SAlex Bennée - glib 4491fa7dd1SAlex Bennée - pixman 45db2b95d5SThomas Huth - gnu-sed 46*71451cffSAlex Bennée update: true 47692d162cSAlex Bennée 48197be697SDaniel P. Berrangé 49cb4c2536SPranith Kumar# The channel name "irc.oftc.net#qemu" is encrypted against qemu/qemu 50cb4c2536SPranith Kumar# to prevent IRC notifications from forks. This was created using: 51cb4c2536SPranith Kumar# $ travis encrypt -r "qemu/qemu" "irc.oftc.net#qemu" 5239d16d29SAlex Bennéenotifications: 5339d16d29SAlex Bennée irc: 5439d16d29SAlex Bennée channels: 55cb4c2536SPranith Kumar - secure: "F7GDRgjuOo5IUyRLqSkmDL7kvdU4UcH3Lm/W2db2JnDHTGCqgEdaYEYKciyCLZ57vOTsTsOgesN8iUT7hNHBd1KWKjZe9KDTZWppWRYVwAwQMzVeSOsbbU4tRoJ6Pp+3qhH1Z0eGYR9ZgKYAoTumDFgSAYRp4IscKS8jkoedOqM=" 5639d16d29SAlex Bennée on_success: change 5739d16d29SAlex Bennée on_failure: always 58197be697SDaniel P. Berrangé 59197be697SDaniel P. Berrangé 60fe863ab9SAlex Bennéeenv: 61fe863ab9SAlex Bennée global: 62ebf2ff65SPhilippe Mathieu-Daudé - SRC_DIR="." 63ebf2ff65SPhilippe Mathieu-Daudé - BUILD_DIR="." 64570f3c77SAlex Bennée - BASE_CONFIG="--disable-docs --disable-tools" 65e2576f9bSDaniel P. Berrangé - TEST_CMD="make check -j3 V=1" 668c3daf97SAlex Bennée # This is broadly a list of "mainline" softmmu targets which have support across the major distros 678c3daf97SAlex Bennée - MAIN_SOFTMMU_TARGETS="aarch64-softmmu,arm-softmmu,i386-softmmu,mips-softmmu,mips64-softmmu,ppc64-softmmu,riscv64-softmmu,s390x-softmmu,x86_64-softmmu" 68197be697SDaniel P. Berrangé 69cb021cfeSAlex Bennéegit: 70cb021cfeSAlex Bennée # we want to do this ourselves 71cb021cfeSAlex Bennée submodules: false 72197be697SDaniel P. Berrangé 73197be697SDaniel P. Berrangé 74eebf2940SAlex Bennéebefore_script: 75ebf2ff65SPhilippe Mathieu-Daudé - mkdir -p ${BUILD_DIR} && cd ${BUILD_DIR} 76570f3c77SAlex Bennée - ${SRC_DIR}/configure ${BASE_CONFIG} ${CONFIG} || { cat config.log && exit 1; } 77eebf2940SAlex Bennéescript: 789b29d049SDaniel P. Berrangé - make -j3 && ${TEST_CMD} 79197be697SDaniel P. Berrangé 80197be697SDaniel P. Berrangé 81fe863ab9SAlex Bennéematrix: 82fe863ab9SAlex Bennée include: 83c21d7efcSDaniel P. Berrangé - env: 84c3c1874aSAlex Bennée - CONFIG="--disable-system --static" 853e094234SDaniel P. Berrangé 863e094234SDaniel P. Berrangé 878c3daf97SAlex Bennée # we split the system builds as it takes a while to build them all 88c21d7efcSDaniel P. Berrangé - env: 898c3daf97SAlex Bennée - CONFIG="--disable-user --target-list=${MAIN_SOFTMMU_TARGETS}" 908c3daf97SAlex Bennée 918c3daf97SAlex Bennée 928c3daf97SAlex Bennée - env: 938c3daf97SAlex Bennée - CONFIG="--disable-user --target-list-exclude=${MAIN_SOFTMMU_TARGETS}" 943e094234SDaniel P. Berrangé 953e094234SDaniel P. Berrangé 96df2bb38eSAlex Bennée # Just build tools and run minimal unit and softfloat checks 97df2bb38eSAlex Bennée - env: 98df2bb38eSAlex Bennée - BASE_CONFIG="--enable-tools" 99df2bb38eSAlex Bennée - CONFIG="--disable-user --disable-system" 100df2bb38eSAlex Bennée - TEST_CMD="make check-unit check-softfloat -j3" 101df2bb38eSAlex Bennée 102c21d7efcSDaniel P. Berrangé - env: 1034e6e7df6SAlex Bennée - CONFIG="--enable-debug --enable-debug-tcg --disable-user" 1044e6e7df6SAlex Bennée 1054e6e7df6SAlex Bennée 1064e6e7df6SAlex Bennée # TCG debug can be run just on it's own and is mostly agnostic to user/softmmu distinctions 1074e6e7df6SAlex Bennée - env: 1084e6e7df6SAlex Bennée - CONFIG="--enable-debug-tcg --disable-system" 1093e094234SDaniel P. Berrangé 1103e094234SDaniel P. Berrangé 111c21d7efcSDaniel P. Berrangé - env: 112aec2927dSAlex Bennée - CONFIG="--disable-linux-aio --disable-cap-ng --disable-attr --disable-brlapi --disable-libusb --disable-replication --target-list=${MAIN_SOFTMMU_TARGETS}" 1133e094234SDaniel P. Berrangé 1143e094234SDaniel P. Berrangé 1152f6c2526SAlex Bennée # Module builds are mostly of interest to major distros 116c21d7efcSDaniel P. Berrangé - env: 1178c3daf97SAlex Bennée - CONFIG="--enable-modules --target-list=${MAIN_SOFTMMU_TARGETS}" 1183e094234SDaniel P. Berrangé 1193e094234SDaniel P. Berrangé 120f3908ff7SAlex Bennée # Alternate coroutines implementations are only really of interest to KVM users 121f3908ff7SAlex Bennée # However we can't test against KVM on Travis so we can only run unit tests 122c21d7efcSDaniel P. Berrangé - env: 123f3908ff7SAlex Bennée - CONFIG="--with-coroutine=ucontext --disable-tcg" 124f3908ff7SAlex Bennée - TEST_CMD="make check-unit -j3 V=1" 1253e094234SDaniel P. Berrangé 1263e094234SDaniel P. Berrangé 127c21d7efcSDaniel P. Berrangé - env: 128f3908ff7SAlex Bennée - CONFIG="--with-coroutine=sigaltstack --disable-tcg" 129f3908ff7SAlex Bennée - TEST_CMD="make check-unit -j3 V=1" 1303e094234SDaniel P. Berrangé 1313e094234SDaniel P. Berrangé 132956d4506SAlex Bennée # Check we can build docs and tools (out of tree) 133570f3c77SAlex Bennée - env: 134956d4506SAlex Bennée - BUILD_DIR="out-of-tree/build/dir" SRC_DIR="../../.." 135570f3c77SAlex Bennée - BASE_CONFIG="--enable-tools --enable-docs" 136570f3c77SAlex Bennée - CONFIG="--target-list=x86_64-softmmu,aarch64-linux-user" 137570f3c77SAlex Bennée addons: 138570f3c77SAlex Bennée apt: 139570f3c77SAlex Bennée packages: 140570f3c77SAlex Bennée - python-sphinx 141570f3c77SAlex Bennée - texinfo 142570f3c77SAlex Bennée - perl 143570f3c77SAlex Bennée 144197be697SDaniel P. Berrangé 145ae6d692dSAlex Bennée # Test with Clang for compile portability (Travis uses clang-5.0) 146c21d7efcSDaniel P. Berrangé - env: 147c21d7efcSDaniel P. Berrangé - CONFIG="--disable-system" 148ae6d692dSAlex Bennée compiler: clang 149197be697SDaniel P. Berrangé 150197be697SDaniel P. Berrangé 151c21d7efcSDaniel P. Berrangé - env: 1528c3daf97SAlex Bennée - CONFIG="--disable-user --target-list=${MAIN_SOFTMMU_TARGETS}" 1538c3daf97SAlex Bennée compiler: clang 1548c3daf97SAlex Bennée 1558c3daf97SAlex Bennée 1568c3daf97SAlex Bennée - env: 1577831147eSAlex Bennée - CONFIG="--target-list=${MAIN_SOFTMMU_TARGETS} " 1587831147eSAlex Bennée compiler: clang 1597831147eSAlex Bennée before_script: 1607831147eSAlex Bennée - ./configure ${CONFIG} --extra-cflags="-fsanitize=undefined -Werror" || { cat config.log && exit 1; } 1617831147eSAlex Bennée 1627831147eSAlex Bennée 1637831147eSAlex Bennée - env: 1648c3daf97SAlex Bennée - CONFIG="--disable-user --target-list-exclude=${MAIN_SOFTMMU_TARGETS}" 165d9a6b013SDaniel P. Berrange compiler: clang 166197be697SDaniel P. Berrangé 167197be697SDaniel P. Berrangé 1686c933291SAlex Bennée # gprof/gcov are GCC features 169c21d7efcSDaniel P. Berrangé - env: 1708c3daf97SAlex Bennée - CONFIG="--enable-gprof --enable-gcov --disable-pie --target-list=${MAIN_SOFTMMU_TARGETS}" 1710708e647SAlex Bennée after_success: 1720708e647SAlex Bennée - ${SRC_DIR}/scripts/travis/coverage-summary.sh 173197be697SDaniel P. Berrangé 174197be697SDaniel P. Berrangé 1756c933291SAlex Bennée # We manually include builds which we disable "make check" for 176c21d7efcSDaniel P. Berrangé - env: 177386dc514SAlex Bennée - CONFIG="--without-default-devices --disable-user" 17820885b5bSPaolo Bonzini - TEST_CMD="" 17920885b5bSPaolo Bonzini 18020885b5bSPaolo Bonzini 18120885b5bSPaolo Bonzini # We manually include builds which we disable "make check" for 18220885b5bSPaolo Bonzini - env: 183c21d7efcSDaniel P. Berrangé - CONFIG="--enable-debug --enable-tcg-interpreter" 184c21d7efcSDaniel P. Berrangé - TEST_CMD="" 185197be697SDaniel P. Berrangé 186197be697SDaniel P. Berrangé 187f8309de9SAlex Bennée # We don't need to exercise every backend with every front-end 188c21d7efcSDaniel P. Berrangé - env: 189c21d7efcSDaniel P. Berrangé - CONFIG="--enable-trace-backends=log,simple,syslog --disable-system" 190c21d7efcSDaniel P. Berrangé - TEST_CMD="" 191197be697SDaniel P. Berrangé 192197be697SDaniel P. Berrangé 193c21d7efcSDaniel P. Berrangé - env: 194c21d7efcSDaniel P. Berrangé - CONFIG="--enable-trace-backends=ftrace --target-list=x86_64-softmmu" 195c21d7efcSDaniel P. Berrangé - TEST_CMD="" 196197be697SDaniel P. Berrangé 197197be697SDaniel P. Berrangé 198c21d7efcSDaniel P. Berrangé - env: 199c21d7efcSDaniel P. Berrangé - CONFIG="--enable-trace-backends=ust --target-list=x86_64-softmmu" 200c21d7efcSDaniel P. Berrangé - TEST_CMD="" 201197be697SDaniel P. Berrangé 202197be697SDaniel P. Berrangé 203adcf9683SAlex Bennée # MacOSX builds 204c21d7efcSDaniel P. Berrangé - env: 2058c3daf97SAlex Bennée - CONFIG="--target-list=${MAIN_SOFTMMU_TARGETS}" 2061d002037SAlex Bennée os: osx 207adcf9683SAlex Bennée osx_image: xcode9.4 208adcf9683SAlex Bennée compiler: clang 209197be697SDaniel P. Berrangé 210197be697SDaniel P. Berrangé 211cd7507cbSPhilippe Mathieu-Daudé - env: 212cd7507cbSPhilippe Mathieu-Daudé - CONFIG="--target-list=i386-softmmu,ppc-softmmu,ppc64-softmmu,m68k-softmmu,x86_64-softmmu" 213cd7507cbSPhilippe Mathieu-Daudé os: osx 214cd7507cbSPhilippe Mathieu-Daudé osx_image: xcode10.2 215cd7507cbSPhilippe Mathieu-Daudé compiler: clang 216cd7507cbSPhilippe Mathieu-Daudé 217cd7507cbSPhilippe Mathieu-Daudé 218ae6d692dSAlex Bennée # Python builds 219c21d7efcSDaniel P. Berrangé - env: 220c21d7efcSDaniel P. Berrangé - CONFIG="--target-list=x86_64-softmmu" 22153fefde4SCleber Rosa language: python 2228e73a3c5SDaniel P. Berrange python: 22353fefde4SCleber Rosa - "3.4" 224197be697SDaniel P. Berrangé 225197be697SDaniel P. Berrangé 226c21d7efcSDaniel P. Berrangé - env: 227c21d7efcSDaniel P. Berrangé - CONFIG="--target-list=x86_64-softmmu" 22853fefde4SCleber Rosa language: python 2298e73a3c5SDaniel P. Berrange python: 2308e73a3c5SDaniel P. Berrange - "3.6" 231197be697SDaniel P. Berrangé 232197be697SDaniel P. Berrangé 233aa983ff6SCleber Rosa # Acceptance (Functional) tests 234c21d7efcSDaniel P. Berrangé - env: 235b36b5937SCleber Rosa - CONFIG="--python=/usr/bin/python3 --target-list=x86_64-softmmu,mips-softmmu,mips64el-softmmu,aarch64-softmmu,arm-softmmu,s390x-softmmu,alpha-softmmu" 2360b98c20aSEduardo Habkost - TEST_CMD="make check-acceptance" 237c21f30ebSCleber Rosa after_failure: 238c21f30ebSCleber Rosa - cat tests/results/latest/job.log 239aa983ff6SCleber Rosa addons: 240aa983ff6SCleber Rosa apt: 241aa983ff6SCleber Rosa packages: 242aa983ff6SCleber Rosa - python3-pip 24395310576SAlex Bennée - python3.5-venv 24432265288SAlex Bennée # Using newer GCC with sanitizers 24532265288SAlex Bennée - addons: 24632265288SAlex Bennée apt: 247ac07ffc6SAlex Bennée update: true 24832265288SAlex Bennée sources: 24932265288SAlex Bennée # PPAs for newer toolchains 25032265288SAlex Bennée - ubuntu-toolchain-r-test 25132265288SAlex Bennée packages: 25232265288SAlex Bennée # Extra toolchains 2533998c25eSAlex Bennée - gcc-9 2543998c25eSAlex Bennée - g++-9 25532265288SAlex Bennée # Build dependencies 25632265288SAlex Bennée - libaio-dev 25732265288SAlex Bennée - libattr1-dev 25832265288SAlex Bennée - libbrlapi-dev 25932265288SAlex Bennée - libcap-ng-dev 26032265288SAlex Bennée - libgnutls-dev 26132265288SAlex Bennée - libgtk-3-dev 26232265288SAlex Bennée - libiscsi-dev 26332265288SAlex Bennée - liblttng-ust-dev 26432265288SAlex Bennée - libnfs-dev 26532265288SAlex Bennée - libncurses5-dev 26632265288SAlex Bennée - libnss3-dev 26732265288SAlex Bennée - libpixman-1-dev 26832265288SAlex Bennée - libpng12-dev 26932265288SAlex Bennée - librados-dev 27032265288SAlex Bennée - libsdl1.2-dev 27132265288SAlex Bennée - libseccomp-dev 27232265288SAlex Bennée - libspice-protocol-dev 27332265288SAlex Bennée - libspice-server-dev 274b10d49d7SPino Toscano - libssh-dev 27532265288SAlex Bennée - liburcu-dev 27632265288SAlex Bennée - libusb-1.0-0-dev 27795310576SAlex Bennée - libvte-2.91-dev 27832265288SAlex Bennée - sparse 27932265288SAlex Bennée - uuid-dev 28032265288SAlex Bennée language: generic 28132265288SAlex Bennée compiler: none 28232265288SAlex Bennée env: 2833998c25eSAlex Bennée - COMPILER_NAME=gcc CXX=g++-9 CC=gcc-9 2843998c25eSAlex Bennée - CONFIG="--cc=gcc-9 --cxx=g++-9 --disable-pie --disable-linux-user" 28532265288SAlex Bennée - TEST_CMD="" 28632265288SAlex Bennée before_script: 2873998c25eSAlex Bennée - ./configure ${CONFIG} --extra-cflags="-g3 -O0 -Wno-error=stringop-truncation -fsanitize=thread -fuse-ld=gold" || { cat config.log && exit 1; } 288197be697SDaniel P. Berrangé 289197be697SDaniel P. Berrangé 290dab3a7c0SAlex Bennée # Run check-tcg against linux-user 29165b26da4SAlex Bennée - env: 292570f3c77SAlex Bennée - CONFIG="--disable-system" 293e2576f9bSDaniel P. Berrangé - TEST_CMD="make -j3 check-tcg V=1" 294dab3a7c0SAlex Bennée 295dab3a7c0SAlex Bennée # Run check-tcg against softmmu targets 296dab3a7c0SAlex Bennée - env: 297591ff1ffSAlex Bennée - CONFIG="--target-list=xtensa-softmmu,arm-softmmu,aarch64-softmmu,alpha-softmmu" 298dab3a7c0SAlex Bennée - TEST_CMD="make -j3 check-tcg V=1" 299