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: 95ef9c53cSPhilippe Mathieu-Daudé # There is one cache per branch and compiler version. 105ef9c53cSPhilippe Mathieu-Daudé # characteristics of each job are used to identify the cache: 115ef9c53cSPhilippe Mathieu-Daudé # - OS name (currently, linux, osx, or windows) 125ef9c53cSPhilippe Mathieu-Daudé # - OS distribution (for Linux, xenial, trusty, or precise) 135ef9c53cSPhilippe Mathieu-Daudé # - macOS image name (e.g., xcode7.2) 145ef9c53cSPhilippe Mathieu-Daudé # - Names and values of visible environment variables set in .travis.yml or Settings panel 15731cbb64SPhilippe Mathieu-Daudé timeout: 1200 164bc629b2SPhilippe Mathieu-Daudé ccache: true 176e189d78SPhilippe Mathieu-Daudé pip: true 18c1073e44SPhilippe Mathieu-Daudé directories: 19c1073e44SPhilippe Mathieu-Daudé - $HOME/avocado/data/cache 20197be697SDaniel P. Berrangé 21197be697SDaniel P. Berrangé 22692d162cSAlex Bennéeaddons: 23692d162cSAlex Bennée apt: 24692d162cSAlex Bennée packages: 2532265288SAlex Bennée # Build dependencies 26692d162cSAlex Bennée - libaio-dev 27692d162cSAlex Bennée - libattr1-dev 28692d162cSAlex Bennée - libbrlapi-dev 29c269447fSThomas Huth - libcap-dev 30692d162cSAlex Bennée - libcap-ng-dev 317524a39dSPhilippe Mathieu-Daudé - libgcc-4.8-dev 32692d162cSAlex Bennée - libgnutls-dev 33692d162cSAlex Bennée - libgtk-3-dev 34692d162cSAlex Bennée - libiscsi-dev 35692d162cSAlex Bennée - liblttng-ust-dev 36692d162cSAlex Bennée - libncurses5-dev 37d83414e1SMarc-André Lureau - libnfs-dev 38692d162cSAlex Bennée - libnss3-dev 39692d162cSAlex Bennée - libpixman-1-dev 40692d162cSAlex Bennée - libpng12-dev 41692d162cSAlex Bennée - librados-dev 42692d162cSAlex Bennée - libsdl1.2-dev 43692d162cSAlex Bennée - libseccomp-dev 44692d162cSAlex Bennée - libspice-protocol-dev 45692d162cSAlex Bennée - libspice-server-dev 46b10d49d7SPino Toscano - libssh-dev 47692d162cSAlex Bennée - liburcu-dev 48692d162cSAlex Bennée - libusb-1.0-0-dev 4995310576SAlex Bennée - libvte-2.91-dev 50692d162cSAlex Bennée - sparse 51692d162cSAlex Bennée - uuid-dev 520708e647SAlex Bennée - gcovr 5391fa7dd1SAlex Bennée homebrew: 5491fa7dd1SAlex Bennée packages: 550d8773c2SPhilippe Mathieu-Daudé - ccache 5691fa7dd1SAlex Bennée - glib 5791fa7dd1SAlex Bennée - pixman 58db2b95d5SThomas Huth - gnu-sed 5971451cffSAlex Bennée update: true 60692d162cSAlex Bennée 61197be697SDaniel P. Berrangé 62cb4c2536SPranith Kumar# The channel name "irc.oftc.net#qemu" is encrypted against qemu/qemu 63cb4c2536SPranith Kumar# to prevent IRC notifications from forks. This was created using: 64cb4c2536SPranith Kumar# $ travis encrypt -r "qemu/qemu" "irc.oftc.net#qemu" 6539d16d29SAlex Bennéenotifications: 6639d16d29SAlex Bennée irc: 6739d16d29SAlex Bennée channels: 68cb4c2536SPranith Kumar - secure: "F7GDRgjuOo5IUyRLqSkmDL7kvdU4UcH3Lm/W2db2JnDHTGCqgEdaYEYKciyCLZ57vOTsTsOgesN8iUT7hNHBd1KWKjZe9KDTZWppWRYVwAwQMzVeSOsbbU4tRoJ6Pp+3qhH1Z0eGYR9ZgKYAoTumDFgSAYRp4IscKS8jkoedOqM=" 6939d16d29SAlex Bennée on_success: change 7039d16d29SAlex Bennée on_failure: always 71197be697SDaniel P. Berrangé 72197be697SDaniel P. Berrangé 73fe863ab9SAlex Bennéeenv: 74fe863ab9SAlex Bennée global: 75ebf2ff65SPhilippe Mathieu-Daudé - SRC_DIR="." 76ebf2ff65SPhilippe Mathieu-Daudé - BUILD_DIR="." 77570f3c77SAlex Bennée - BASE_CONFIG="--disable-docs --disable-tools" 78e2576f9bSDaniel P. Berrangé - TEST_CMD="make check -j3 V=1" 798c3daf97SAlex Bennée # This is broadly a list of "mainline" softmmu targets which have support across the major distros 808c3daf97SAlex Bennée - MAIN_SOFTMMU_TARGETS="aarch64-softmmu,arm-softmmu,i386-softmmu,mips-softmmu,mips64-softmmu,ppc64-softmmu,riscv64-softmmu,s390x-softmmu,x86_64-softmmu" 81bcfbf0d5SPhilippe Mathieu-Daudé - CCACHE_SLOPPINESS="include_file_ctime,include_file_mtime" 82bcfbf0d5SPhilippe Mathieu-Daudé - CCACHE_MAXSIZE=1G 83bcfbf0d5SPhilippe Mathieu-Daudé 84197be697SDaniel P. Berrangé 85cb021cfeSAlex Bennéegit: 86cb021cfeSAlex Bennée # we want to do this ourselves 87cb021cfeSAlex Bennée submodules: false 88197be697SDaniel P. Berrangé 89197be697SDaniel P. Berrangé 90eebf2940SAlex Bennéebefore_script: 910d8773c2SPhilippe Mathieu-Daudé - if [ "$TRAVIS_OS_NAME" == "osx" ] ; then export PATH="/usr/local/opt/ccache/libexec:$PATH" ; fi 92bcfbf0d5SPhilippe Mathieu-Daudé - command -v ccache && ccache --zero-stats 93ebf2ff65SPhilippe Mathieu-Daudé - mkdir -p ${BUILD_DIR} && cd ${BUILD_DIR} 94570f3c77SAlex Bennée - ${SRC_DIR}/configure ${BASE_CONFIG} ${CONFIG} || { cat config.log && exit 1; } 95eebf2940SAlex Bennéescript: 963a37c13fSAlex Bennée - make -j3 && travis_retry ${TEST_CMD} 97bcfbf0d5SPhilippe Mathieu-Daudéafter_script: 98bcfbf0d5SPhilippe Mathieu-Daudé - command -v ccache && ccache --show-stats 99197be697SDaniel P. Berrangé 100197be697SDaniel P. Berrangé 101fe863ab9SAlex Bennéematrix: 102fe863ab9SAlex Bennée include: 103c21d7efcSDaniel P. Berrangé - env: 104c3c1874aSAlex Bennée - CONFIG="--disable-system --static" 1057d183c54SPhilippe Mathieu-Daudé - CACHE_NAME="${TRAVIS_BRANCH}-linux-gcc-default" 1063e094234SDaniel P. Berrangé 1073e094234SDaniel P. Berrangé 1088c3daf97SAlex Bennée # we split the system builds as it takes a while to build them all 109c21d7efcSDaniel P. Berrangé - env: 1108c3daf97SAlex Bennée - CONFIG="--disable-user --target-list=${MAIN_SOFTMMU_TARGETS}" 1117d183c54SPhilippe Mathieu-Daudé - CACHE_NAME="${TRAVIS_BRANCH}-linux-gcc-default" 1128c3daf97SAlex Bennée 1138c3daf97SAlex Bennée 1148c3daf97SAlex Bennée - env: 1158c3daf97SAlex Bennée - CONFIG="--disable-user --target-list-exclude=${MAIN_SOFTMMU_TARGETS}" 1167d183c54SPhilippe Mathieu-Daudé - CACHE_NAME="${TRAVIS_BRANCH}-linux-gcc-default" 1173e094234SDaniel P. Berrangé 1183e094234SDaniel P. Berrangé 119df2bb38eSAlex Bennée # Just build tools and run minimal unit and softfloat checks 120df2bb38eSAlex Bennée - env: 121df2bb38eSAlex Bennée - BASE_CONFIG="--enable-tools" 122df2bb38eSAlex Bennée - CONFIG="--disable-user --disable-system" 123df2bb38eSAlex Bennée - TEST_CMD="make check-unit check-softfloat -j3" 1247d183c54SPhilippe Mathieu-Daudé - CACHE_NAME="${TRAVIS_BRANCH}-linux-gcc-default" 1257d183c54SPhilippe Mathieu-Daudé 126df2bb38eSAlex Bennée 127*138382c6SAlex Bennée # --enable-debug implies --enable-debug-tcg, also runs quite a bit slower 128c21d7efcSDaniel P. Berrangé - env: 129*138382c6SAlex Bennée - CONFIG="--enable-debug --target-list=${MAIN_SOFTMMU_TARGETS}" 1308fb90e3dSPhilippe Mathieu-Daudé - CACHE_NAME="${TRAVIS_BRANCH}-linux-gcc-debug" 1314e6e7df6SAlex Bennée 1324e6e7df6SAlex Bennée 133*138382c6SAlex Bennée # TCG debug can be run just on its own and is mostly agnostic to user/softmmu distinctions 1344e6e7df6SAlex Bennée - env: 1354e6e7df6SAlex Bennée - CONFIG="--enable-debug-tcg --disable-system" 1368fb90e3dSPhilippe Mathieu-Daudé - CACHE_NAME="${TRAVIS_BRANCH}-linux-gcc-debug" 1373e094234SDaniel P. Berrangé 1383e094234SDaniel P. Berrangé 139c21d7efcSDaniel P. Berrangé - env: 140aec2927dSAlex Bennée - CONFIG="--disable-linux-aio --disable-cap-ng --disable-attr --disable-brlapi --disable-libusb --disable-replication --target-list=${MAIN_SOFTMMU_TARGETS}" 1413e094234SDaniel P. Berrangé 1423e094234SDaniel P. Berrangé 1432f6c2526SAlex Bennée # Module builds are mostly of interest to major distros 144c21d7efcSDaniel P. Berrangé - env: 1458c3daf97SAlex Bennée - CONFIG="--enable-modules --target-list=${MAIN_SOFTMMU_TARGETS}" 1467d183c54SPhilippe Mathieu-Daudé - CACHE_NAME="${TRAVIS_BRANCH}-linux-gcc-default" 1473e094234SDaniel P. Berrangé 1483e094234SDaniel P. Berrangé 149f3908ff7SAlex Bennée # Alternate coroutines implementations are only really of interest to KVM users 150f3908ff7SAlex Bennée # However we can't test against KVM on Travis so we can only run unit tests 151c21d7efcSDaniel P. Berrangé - env: 152f3908ff7SAlex Bennée - CONFIG="--with-coroutine=ucontext --disable-tcg" 153f3908ff7SAlex Bennée - TEST_CMD="make check-unit -j3 V=1" 1543e094234SDaniel P. Berrangé 1553e094234SDaniel P. Berrangé 156c21d7efcSDaniel P. Berrangé - env: 157f3908ff7SAlex Bennée - CONFIG="--with-coroutine=sigaltstack --disable-tcg" 158f3908ff7SAlex Bennée - TEST_CMD="make check-unit -j3 V=1" 1593e094234SDaniel P. Berrangé 1603e094234SDaniel P. Berrangé 161956d4506SAlex Bennée # Check we can build docs and tools (out of tree) 162570f3c77SAlex Bennée - env: 163956d4506SAlex Bennée - BUILD_DIR="out-of-tree/build/dir" SRC_DIR="../../.." 164570f3c77SAlex Bennée - BASE_CONFIG="--enable-tools --enable-docs" 165570f3c77SAlex Bennée - CONFIG="--target-list=x86_64-softmmu,aarch64-linux-user" 1667d183c54SPhilippe Mathieu-Daudé - CACHE_NAME="${TRAVIS_BRANCH}-linux-gcc-default" 167570f3c77SAlex Bennée addons: 168570f3c77SAlex Bennée apt: 169570f3c77SAlex Bennée packages: 170570f3c77SAlex Bennée - python-sphinx 171570f3c77SAlex Bennée - texinfo 172570f3c77SAlex Bennée - perl 173570f3c77SAlex Bennée 174197be697SDaniel P. Berrangé 175ae6d692dSAlex Bennée # Test with Clang for compile portability (Travis uses clang-5.0) 176c21d7efcSDaniel P. Berrangé - env: 177c21d7efcSDaniel P. Berrangé - CONFIG="--disable-system" 178e2bef011SPhilippe Mathieu-Daudé - CACHE_NAME="${TRAVIS_BRANCH}-linux-clang-default" 179ae6d692dSAlex Bennée compiler: clang 180197be697SDaniel P. Berrangé 181197be697SDaniel P. Berrangé 182c21d7efcSDaniel P. Berrangé - env: 1838c3daf97SAlex Bennée - CONFIG="--disable-user --target-list=${MAIN_SOFTMMU_TARGETS}" 184e2bef011SPhilippe Mathieu-Daudé - CACHE_NAME="${TRAVIS_BRANCH}-linux-clang-default" 1858c3daf97SAlex Bennée compiler: clang 1868c3daf97SAlex Bennée 1878c3daf97SAlex Bennée 1888c3daf97SAlex Bennée - env: 1897831147eSAlex Bennée - CONFIG="--target-list=${MAIN_SOFTMMU_TARGETS} " 1907831147eSAlex Bennée compiler: clang 1917831147eSAlex Bennée before_script: 1927831147eSAlex Bennée - ./configure ${CONFIG} --extra-cflags="-fsanitize=undefined -Werror" || { cat config.log && exit 1; } 1937831147eSAlex Bennée 1947831147eSAlex Bennée 1957831147eSAlex Bennée - env: 1968c3daf97SAlex Bennée - CONFIG="--disable-user --target-list-exclude=${MAIN_SOFTMMU_TARGETS}" 197e2bef011SPhilippe Mathieu-Daudé - CACHE_NAME="${TRAVIS_BRANCH}-linux-clang-default" 198d9a6b013SDaniel P. Berrange compiler: clang 199197be697SDaniel P. Berrangé 200197be697SDaniel P. Berrangé 2016c933291SAlex Bennée # gprof/gcov are GCC features 202c21d7efcSDaniel P. Berrangé - env: 2038c3daf97SAlex Bennée - CONFIG="--enable-gprof --enable-gcov --disable-pie --target-list=${MAIN_SOFTMMU_TARGETS}" 2040708e647SAlex Bennée after_success: 2050708e647SAlex Bennée - ${SRC_DIR}/scripts/travis/coverage-summary.sh 206197be697SDaniel P. Berrangé 207197be697SDaniel P. Berrangé 2086c933291SAlex Bennée # We manually include builds which we disable "make check" for 209c21d7efcSDaniel P. Berrangé - env: 210386dc514SAlex Bennée - CONFIG="--without-default-devices --disable-user" 2117d183c54SPhilippe Mathieu-Daudé - CACHE_NAME="${TRAVIS_BRANCH}-linux-gcc-default" 21220885b5bSPaolo Bonzini - TEST_CMD="" 21320885b5bSPaolo Bonzini 21420885b5bSPaolo Bonzini 21520885b5bSPaolo Bonzini # We manually include builds which we disable "make check" for 21620885b5bSPaolo Bonzini - env: 217c21d7efcSDaniel P. Berrangé - CONFIG="--enable-debug --enable-tcg-interpreter" 218c21d7efcSDaniel P. Berrangé - TEST_CMD="" 219197be697SDaniel P. Berrangé 220197be697SDaniel P. Berrangé 221f8309de9SAlex Bennée # We don't need to exercise every backend with every front-end 222c21d7efcSDaniel P. Berrangé - env: 223c21d7efcSDaniel P. Berrangé - CONFIG="--enable-trace-backends=log,simple,syslog --disable-system" 224c21d7efcSDaniel P. Berrangé - TEST_CMD="" 225197be697SDaniel P. Berrangé 226197be697SDaniel P. Berrangé 227c21d7efcSDaniel P. Berrangé - env: 228c21d7efcSDaniel P. Berrangé - CONFIG="--enable-trace-backends=ftrace --target-list=x86_64-softmmu" 229c21d7efcSDaniel P. Berrangé - TEST_CMD="" 230197be697SDaniel P. Berrangé 231197be697SDaniel P. Berrangé 232c21d7efcSDaniel P. Berrangé - env: 233c21d7efcSDaniel P. Berrangé - CONFIG="--enable-trace-backends=ust --target-list=x86_64-softmmu" 234c21d7efcSDaniel P. Berrangé - TEST_CMD="" 235197be697SDaniel P. Berrangé 236197be697SDaniel P. Berrangé 237adcf9683SAlex Bennée # MacOSX builds 238c21d7efcSDaniel P. Berrangé - env: 2398c3daf97SAlex Bennée - CONFIG="--target-list=${MAIN_SOFTMMU_TARGETS}" 2401d002037SAlex Bennée os: osx 241adcf9683SAlex Bennée osx_image: xcode9.4 242adcf9683SAlex Bennée compiler: clang 243197be697SDaniel P. Berrangé 244197be697SDaniel P. Berrangé 245cd7507cbSPhilippe Mathieu-Daudé - env: 246cd7507cbSPhilippe Mathieu-Daudé - CONFIG="--target-list=i386-softmmu,ppc-softmmu,ppc64-softmmu,m68k-softmmu,x86_64-softmmu" 247cd7507cbSPhilippe Mathieu-Daudé os: osx 248cd7507cbSPhilippe Mathieu-Daudé osx_image: xcode10.2 249cd7507cbSPhilippe Mathieu-Daudé compiler: clang 250cd7507cbSPhilippe Mathieu-Daudé 251cd7507cbSPhilippe Mathieu-Daudé 252ae6d692dSAlex Bennée # Python builds 253c21d7efcSDaniel P. Berrangé - env: 254c21d7efcSDaniel P. Berrangé - CONFIG="--target-list=x86_64-softmmu" 2557d183c54SPhilippe Mathieu-Daudé - CACHE_NAME="${TRAVIS_BRANCH}-linux-gcc-default" 25653fefde4SCleber Rosa language: python 2578e73a3c5SDaniel P. Berrange python: 25853fefde4SCleber Rosa - "3.4" 259197be697SDaniel P. Berrangé 260197be697SDaniel P. Berrangé 261c21d7efcSDaniel P. Berrangé - env: 262c21d7efcSDaniel P. Berrangé - CONFIG="--target-list=x86_64-softmmu" 2637d183c54SPhilippe Mathieu-Daudé - CACHE_NAME="${TRAVIS_BRANCH}-linux-gcc-default" 26453fefde4SCleber Rosa language: python 2658e73a3c5SDaniel P. Berrange python: 2668e73a3c5SDaniel P. Berrange - "3.6" 267197be697SDaniel P. Berrangé 268197be697SDaniel P. Berrangé 269aa983ff6SCleber Rosa # Acceptance (Functional) tests 270c21d7efcSDaniel P. Berrangé - env: 27125311649SPhilippe 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" 2720b98c20aSEduardo Habkost - TEST_CMD="make check-acceptance" 273c21f30ebSCleber Rosa after_failure: 274c21f30ebSCleber Rosa - cat tests/results/latest/job.log 275aa983ff6SCleber Rosa addons: 276aa983ff6SCleber Rosa apt: 277aa983ff6SCleber Rosa packages: 27825311649SPhilippe Mathieu-Daudé - python3-pil 279aa983ff6SCleber Rosa - python3-pip 28095310576SAlex Bennée - python3.5-venv 28125311649SPhilippe Mathieu-Daudé - tesseract-ocr 28225311649SPhilippe Mathieu-Daudé - tesseract-ocr-eng 28325311649SPhilippe Mathieu-Daudé 28425311649SPhilippe Mathieu-Daudé 28532265288SAlex Bennée # Using newer GCC with sanitizers 28632265288SAlex Bennée - addons: 28732265288SAlex Bennée apt: 288ac07ffc6SAlex Bennée update: true 28932265288SAlex Bennée sources: 29032265288SAlex Bennée # PPAs for newer toolchains 29132265288SAlex Bennée - ubuntu-toolchain-r-test 29232265288SAlex Bennée packages: 29332265288SAlex Bennée # Extra toolchains 2943998c25eSAlex Bennée - gcc-9 2953998c25eSAlex Bennée - g++-9 29632265288SAlex Bennée # Build dependencies 29732265288SAlex Bennée - libaio-dev 29832265288SAlex Bennée - libattr1-dev 29932265288SAlex Bennée - libbrlapi-dev 30032265288SAlex Bennée - libcap-ng-dev 30132265288SAlex Bennée - libgnutls-dev 30232265288SAlex Bennée - libgtk-3-dev 30332265288SAlex Bennée - libiscsi-dev 30432265288SAlex Bennée - liblttng-ust-dev 30532265288SAlex Bennée - libnfs-dev 30632265288SAlex Bennée - libncurses5-dev 30732265288SAlex Bennée - libnss3-dev 30832265288SAlex Bennée - libpixman-1-dev 30932265288SAlex Bennée - libpng12-dev 31032265288SAlex Bennée - librados-dev 31132265288SAlex Bennée - libsdl1.2-dev 31232265288SAlex Bennée - libseccomp-dev 31332265288SAlex Bennée - libspice-protocol-dev 31432265288SAlex Bennée - libspice-server-dev 315b10d49d7SPino Toscano - libssh-dev 31632265288SAlex Bennée - liburcu-dev 31732265288SAlex Bennée - libusb-1.0-0-dev 31895310576SAlex Bennée - libvte-2.91-dev 31932265288SAlex Bennée - sparse 32032265288SAlex Bennée - uuid-dev 32132265288SAlex Bennée language: generic 32232265288SAlex Bennée compiler: none 32332265288SAlex Bennée env: 3243998c25eSAlex Bennée - COMPILER_NAME=gcc CXX=g++-9 CC=gcc-9 3253998c25eSAlex Bennée - CONFIG="--cc=gcc-9 --cxx=g++-9 --disable-pie --disable-linux-user" 32632265288SAlex Bennée - TEST_CMD="" 32732265288SAlex Bennée before_script: 3283998c25eSAlex Bennée - ./configure ${CONFIG} --extra-cflags="-g3 -O0 -Wno-error=stringop-truncation -fsanitize=thread -fuse-ld=gold" || { cat config.log && exit 1; } 329197be697SDaniel P. Berrangé 330197be697SDaniel P. Berrangé 331dab3a7c0SAlex Bennée # Run check-tcg against linux-user 33265b26da4SAlex Bennée - env: 333570f3c77SAlex Bennée - CONFIG="--disable-system" 334e2576f9bSDaniel P. Berrangé - TEST_CMD="make -j3 check-tcg V=1" 3357d183c54SPhilippe Mathieu-Daudé - CACHE_NAME="${TRAVIS_BRANCH}-linux-gcc-default" 3367d183c54SPhilippe Mathieu-Daudé 337dab3a7c0SAlex Bennée 338dab3a7c0SAlex Bennée # Run check-tcg against softmmu targets 339dab3a7c0SAlex Bennée - env: 340591ff1ffSAlex Bennée - CONFIG="--target-list=xtensa-softmmu,arm-softmmu,aarch64-softmmu,alpha-softmmu" 341dab3a7c0SAlex Bennée - TEST_CMD="make -j3 check-tcg V=1" 3427d183c54SPhilippe Mathieu-Daudé - CACHE_NAME="${TRAVIS_BRANCH}-linux-gcc-default" 343