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 29692d162cSAlex Bennée - libcap-ng-dev 307524a39dSPhilippe Mathieu-Daudé - libgcc-4.8-dev 313c7a8b41SThomas Huth - libgnutls28-dev 32692d162cSAlex Bennée - libgtk-3-dev 33692d162cSAlex Bennée - libiscsi-dev 34692d162cSAlex Bennée - liblttng-ust-dev 35692d162cSAlex Bennée - libncurses5-dev 36d83414e1SMarc-André Lureau - libnfs-dev 37692d162cSAlex Bennée - libnss3-dev 38692d162cSAlex Bennée - libpixman-1-dev 393c7a8b41SThomas Huth - libpng-dev 40692d162cSAlex Bennée - librados-dev 41241e7955SThomas Huth - libsdl2-dev 42241e7955SThomas Huth - libsdl2-image-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 497c1dd4d1SThomas Huth - libvdeplug-dev 5095310576SAlex Bennée - libvte-2.91-dev 51692d162cSAlex Bennée - sparse 52692d162cSAlex Bennée - uuid-dev 530708e647SAlex Bennée - gcovr 5458a1e5b6SWainer dos Santos Moschetta # Tests dependencies 5558a1e5b6SWainer dos Santos Moschetta - genisoimage 56692d162cSAlex Bennée 57197be697SDaniel P. Berrangé 58cb4c2536SPranith Kumar# The channel name "irc.oftc.net#qemu" is encrypted against qemu/qemu 59cb4c2536SPranith Kumar# to prevent IRC notifications from forks. This was created using: 60cb4c2536SPranith Kumar# $ travis encrypt -r "qemu/qemu" "irc.oftc.net#qemu" 6139d16d29SAlex Bennéenotifications: 6239d16d29SAlex Bennée irc: 6339d16d29SAlex Bennée channels: 64cb4c2536SPranith Kumar - secure: "F7GDRgjuOo5IUyRLqSkmDL7kvdU4UcH3Lm/W2db2JnDHTGCqgEdaYEYKciyCLZ57vOTsTsOgesN8iUT7hNHBd1KWKjZe9KDTZWppWRYVwAwQMzVeSOsbbU4tRoJ6Pp+3qhH1Z0eGYR9ZgKYAoTumDFgSAYRp4IscKS8jkoedOqM=" 6539d16d29SAlex Bennée on_success: change 6639d16d29SAlex Bennée on_failure: always 67197be697SDaniel P. Berrangé 68197be697SDaniel P. Berrangé 69fe863ab9SAlex Bennéeenv: 70fe863ab9SAlex Bennée global: 71bc4486fbSPaolo Bonzini - SRC_DIR=".." 72bc4486fbSPaolo Bonzini - BUILD_DIR="build" 73570f3c77SAlex Bennée - BASE_CONFIG="--disable-docs --disable-tools" 74*4f46afd9SAlex Bennée - TEST_BUILD_CMD="" 7505273a43SAlex Bennée - TEST_CMD="make check V=1" 768c3daf97SAlex Bennée # This is broadly a list of "mainline" softmmu targets which have support across the major distros 776e988880SAlex Bennée - MAIN_SOFTMMU_TARGETS="aarch64-softmmu,mips64-softmmu,ppc64-softmmu,riscv64-softmmu,s390x-softmmu,x86_64-softmmu" 78bcfbf0d5SPhilippe Mathieu-Daudé - CCACHE_SLOPPINESS="include_file_ctime,include_file_mtime" 79bcfbf0d5SPhilippe Mathieu-Daudé - CCACHE_MAXSIZE=1G 80bcfbf0d5SPhilippe Mathieu-Daudé 81197be697SDaniel P. Berrangé 82cb021cfeSAlex Bennéegit: 83cb021cfeSAlex Bennée # we want to do this ourselves 84cb021cfeSAlex Bennée submodules: false 85197be697SDaniel P. Berrangé 86b3165c87SAlex Bennée# Common first phase for all steps 87b3165c87SAlex Bennéebefore_install: 88312995c2SThomas Huth - if command -v ccache ; then ccache --zero-stats ; fi 890a7c0ae0SAlex Bennée - export JOBS=$(($(getconf _NPROCESSORS_ONLN) + 1)) 900a7c0ae0SAlex Bennée - echo "=== Using ${JOBS} simultaneous jobs ===" 91b3165c87SAlex Bennée 92b3165c87SAlex Bennée# Configure step - may be overridden 93b3165c87SAlex Bennéebefore_script: 94ebf2ff65SPhilippe Mathieu-Daudé - mkdir -p ${BUILD_DIR} && cd ${BUILD_DIR} 95570f3c77SAlex Bennée - ${SRC_DIR}/configure ${BASE_CONFIG} ${CONFIG} || { cat config.log && exit 1; } 96b3165c87SAlex Bennée 97b3165c87SAlex Bennée# Main build & test - rarely overridden - controlled by TEST_CMD 98eebf2940SAlex Bennéescript: 990a7c0ae0SAlex Bennée - BUILD_RC=0 && make -j${JOBS} || BUILD_RC=$? 100*4f46afd9SAlex Bennée - | 101*4f46afd9SAlex Bennée if [ "$BUILD_RC" -eq 0 ] && [ -n "$TEST_BUILD_CMD" ]; then 102*4f46afd9SAlex Bennée ${TEST_BUILD_CMD} || BUILD_RC=$? 103*4f46afd9SAlex Bennée else 104*4f46afd9SAlex Bennée $(exit $BUILD_RC); 105*4f46afd9SAlex Bennée fi 1063b353883SWainer dos Santos Moschetta - if [ "$BUILD_RC" -eq 0 ] ; then travis_retry ${TEST_CMD} ; else $(exit $BUILD_RC); fi 107bcfbf0d5SPhilippe Mathieu-Daudéafter_script: 108312995c2SThomas Huth - if command -v ccache ; then ccache --show-stats ; fi 109197be697SDaniel P. Berrangé 110197be697SDaniel P. Berrangé 111fe863ab9SAlex Bennéematrix: 112fe863ab9SAlex Bennée include: 113097aebd8SPhilippe Mathieu-Daudé - name: "GCC static (user)" 114097aebd8SPhilippe Mathieu-Daudé env: 115c3c1874aSAlex Bennée - CONFIG="--disable-system --static" 1167d183c54SPhilippe Mathieu-Daudé - CACHE_NAME="${TRAVIS_BRANCH}-linux-gcc-default" 1173e094234SDaniel P. Berrangé 1183e094234SDaniel P. Berrangé 1198c3daf97SAlex Bennée # we split the system builds as it takes a while to build them all 120097aebd8SPhilippe Mathieu-Daudé - name: "GCC (main-softmmu)" 121097aebd8SPhilippe Mathieu-Daudé env: 1228c3daf97SAlex Bennée - CONFIG="--disable-user --target-list=${MAIN_SOFTMMU_TARGETS}" 1237d183c54SPhilippe Mathieu-Daudé - CACHE_NAME="${TRAVIS_BRANCH}-linux-gcc-default" 1248c3daf97SAlex Bennée 1258c3daf97SAlex Bennée 126097aebd8SPhilippe Mathieu-Daudé - name: "GCC (other-softmmu)" 127097aebd8SPhilippe Mathieu-Daudé env: 1288c3daf97SAlex Bennée - CONFIG="--disable-user --target-list-exclude=${MAIN_SOFTMMU_TARGETS}" 1297d183c54SPhilippe Mathieu-Daudé - CACHE_NAME="${TRAVIS_BRANCH}-linux-gcc-default" 1303e094234SDaniel P. Berrangé 1313e094234SDaniel P. Berrangé 132df2bb38eSAlex Bennée # Just build tools and run minimal unit and softfloat checks 133097aebd8SPhilippe Mathieu-Daudé - name: "GCC check-softfloat (user)" 134097aebd8SPhilippe Mathieu-Daudé env: 135df2bb38eSAlex Bennée - BASE_CONFIG="--enable-tools" 136df2bb38eSAlex Bennée - CONFIG="--disable-user --disable-system" 1370a7c0ae0SAlex Bennée - TEST_CMD="make check-unit check-softfloat -j${JOBS}" 1387d183c54SPhilippe Mathieu-Daudé - CACHE_NAME="${TRAVIS_BRANCH}-linux-gcc-default" 1397d183c54SPhilippe Mathieu-Daudé 140df2bb38eSAlex Bennée 141138382c6SAlex Bennée # --enable-debug implies --enable-debug-tcg, also runs quite a bit slower 142097aebd8SPhilippe Mathieu-Daudé - name: "GCC debug (main-softmmu)" 143097aebd8SPhilippe Mathieu-Daudé env: 144138382c6SAlex Bennée - CONFIG="--enable-debug --target-list=${MAIN_SOFTMMU_TARGETS}" 1458fb90e3dSPhilippe Mathieu-Daudé - CACHE_NAME="${TRAVIS_BRANCH}-linux-gcc-debug" 1464e6e7df6SAlex Bennée 1474e6e7df6SAlex Bennée 148138382c6SAlex Bennée # TCG debug can be run just on its own and is mostly agnostic to user/softmmu distinctions 149097aebd8SPhilippe Mathieu-Daudé - name: "GCC debug (user)" 150097aebd8SPhilippe Mathieu-Daudé env: 1514e6e7df6SAlex Bennée - CONFIG="--enable-debug-tcg --disable-system" 15219633df8SAlex Bennée - CACHE_NAME="${TRAVIS_BRANCH}-linux-gcc-debug-tcg" 1533e094234SDaniel P. Berrangé 1543e094234SDaniel P. Berrangé 155097aebd8SPhilippe Mathieu-Daudé - name: "GCC some libs disabled (main-softmmu)" 156097aebd8SPhilippe Mathieu-Daudé env: 157aec2927dSAlex Bennée - CONFIG="--disable-linux-aio --disable-cap-ng --disable-attr --disable-brlapi --disable-libusb --disable-replication --target-list=${MAIN_SOFTMMU_TARGETS}" 1583e094234SDaniel P. Berrangé 1593e094234SDaniel P. Berrangé 1602f6c2526SAlex Bennée # Module builds are mostly of interest to major distros 161097aebd8SPhilippe Mathieu-Daudé - name: "GCC modules (main-softmmu)" 162097aebd8SPhilippe Mathieu-Daudé env: 1638c3daf97SAlex Bennée - CONFIG="--enable-modules --target-list=${MAIN_SOFTMMU_TARGETS}" 1647d183c54SPhilippe Mathieu-Daudé - CACHE_NAME="${TRAVIS_BRANCH}-linux-gcc-default" 1653e094234SDaniel P. Berrangé 1663e094234SDaniel P. Berrangé 167f3908ff7SAlex Bennée # Alternate coroutines implementations are only really of interest to KVM users 168f3908ff7SAlex Bennée # However we can't test against KVM on Travis so we can only run unit tests 169097aebd8SPhilippe Mathieu-Daudé - name: "check-unit coroutine=ucontext" 170097aebd8SPhilippe Mathieu-Daudé env: 171f3908ff7SAlex Bennée - CONFIG="--with-coroutine=ucontext --disable-tcg" 1720a7c0ae0SAlex Bennée - TEST_CMD="make check-unit -j${JOBS} V=1" 1733e094234SDaniel P. Berrangé 1743e094234SDaniel P. Berrangé 175097aebd8SPhilippe Mathieu-Daudé - name: "check-unit coroutine=sigaltstack" 176097aebd8SPhilippe Mathieu-Daudé env: 177f3908ff7SAlex Bennée - CONFIG="--with-coroutine=sigaltstack --disable-tcg" 1780a7c0ae0SAlex Bennée - TEST_CMD="make check-unit -j${JOBS} V=1" 1793e094234SDaniel P. Berrangé 1803e094234SDaniel P. Berrangé 181956d4506SAlex Bennée # Check we can build docs and tools (out of tree) 182204b30e2SAlex Bennée - name: "tools and docs (bionic)" 183204b30e2SAlex Bennée dist: bionic 184097aebd8SPhilippe Mathieu-Daudé env: 185956d4506SAlex Bennée - BUILD_DIR="out-of-tree/build/dir" SRC_DIR="../../.." 186570f3c77SAlex Bennée - BASE_CONFIG="--enable-tools --enable-docs" 187570f3c77SAlex Bennée - CONFIG="--target-list=x86_64-softmmu,aarch64-linux-user" 1887d183c54SPhilippe Mathieu-Daudé - CACHE_NAME="${TRAVIS_BRANCH}-linux-gcc-default" 189570f3c77SAlex Bennée addons: 190570f3c77SAlex Bennée apt: 191570f3c77SAlex Bennée packages: 192570f3c77SAlex Bennée - python-sphinx 193570f3c77SAlex Bennée - texinfo 194570f3c77SAlex Bennée - perl 195570f3c77SAlex Bennée 196197be697SDaniel P. Berrangé 197ae6d692dSAlex Bennée # Test with Clang for compile portability (Travis uses clang-5.0) 198097aebd8SPhilippe Mathieu-Daudé - name: "Clang (user)" 199097aebd8SPhilippe Mathieu-Daudé env: 200c21d7efcSDaniel P. Berrangé - CONFIG="--disable-system" 201e2bef011SPhilippe Mathieu-Daudé - CACHE_NAME="${TRAVIS_BRANCH}-linux-clang-default" 202ae6d692dSAlex Bennée compiler: clang 203197be697SDaniel P. Berrangé 204197be697SDaniel P. Berrangé 205097aebd8SPhilippe Mathieu-Daudé - name: "Clang (main-softmmu)" 206097aebd8SPhilippe Mathieu-Daudé env: 2077831147eSAlex Bennée - CONFIG="--target-list=${MAIN_SOFTMMU_TARGETS} " 208b08c2ae3SAlex Bennée - CACHE_NAME="${TRAVIS_BRANCH}-linux-clang-sanitize" 2097831147eSAlex Bennée compiler: clang 2107831147eSAlex Bennée before_script: 211bc4486fbSPaolo Bonzini - mkdir -p ${BUILD_DIR} && cd ${BUILD_DIR} 212bc4486fbSPaolo Bonzini - ${SRC_DIR}/configure ${CONFIG} --extra-cflags="-fsanitize=undefined -Werror" || { cat config.log && exit 1; } 2137831147eSAlex Bennée 2147831147eSAlex Bennée 215097aebd8SPhilippe Mathieu-Daudé - name: "Clang (other-softmmu)" 216097aebd8SPhilippe Mathieu-Daudé env: 2178c3daf97SAlex Bennée - CONFIG="--disable-user --target-list-exclude=${MAIN_SOFTMMU_TARGETS}" 218e2bef011SPhilippe Mathieu-Daudé - CACHE_NAME="${TRAVIS_BRANCH}-linux-clang-default" 219d9a6b013SDaniel P. Berrange compiler: clang 220197be697SDaniel P. Berrangé 221197be697SDaniel P. Berrangé 2226c933291SAlex Bennée # gprof/gcov are GCC features 223097aebd8SPhilippe Mathieu-Daudé - name: "GCC gprof/gcov" 224097aebd8SPhilippe Mathieu-Daudé env: 2258c3daf97SAlex Bennée - CONFIG="--enable-gprof --enable-gcov --disable-pie --target-list=${MAIN_SOFTMMU_TARGETS}" 2260708e647SAlex Bennée after_success: 2270708e647SAlex Bennée - ${SRC_DIR}/scripts/travis/coverage-summary.sh 228197be697SDaniel P. Berrangé 229197be697SDaniel P. Berrangé 2306c933291SAlex Bennée # We manually include builds which we disable "make check" for 231097aebd8SPhilippe Mathieu-Daudé - name: "GCC without-default-devices (softmmu)" 232097aebd8SPhilippe Mathieu-Daudé env: 233386dc514SAlex Bennée - CONFIG="--without-default-devices --disable-user" 2347d183c54SPhilippe Mathieu-Daudé - CACHE_NAME="${TRAVIS_BRANCH}-linux-gcc-default" 23520885b5bSPaolo Bonzini - TEST_CMD="" 23620885b5bSPaolo Bonzini 23720885b5bSPaolo Bonzini 2383edaa995SThomas Huth # Check the TCG interpreter (TCI) 239097aebd8SPhilippe Mathieu-Daudé - name: "GCC TCI" 240097aebd8SPhilippe Mathieu-Daudé env: 2413edaa995SThomas Huth - CONFIG="--enable-debug-tcg --enable-tcg-interpreter --disable-kvm --disable-containers 2423edaa995SThomas Huth --target-list=alpha-softmmu,arm-softmmu,hppa-softmmu,m68k-softmmu,microblaze-softmmu,moxie-softmmu,ppc-softmmu,s390x-softmmu,x86_64-softmmu" 2433edaa995SThomas Huth - TEST_CMD="make check-qtest check-tcg V=1" 244197be697SDaniel P. Berrangé 245197be697SDaniel P. Berrangé 246f8309de9SAlex Bennée # We don't need to exercise every backend with every front-end 247097aebd8SPhilippe Mathieu-Daudé - name: "GCC trace log,simple,syslog (user)" 248097aebd8SPhilippe Mathieu-Daudé env: 249c21d7efcSDaniel P. Berrangé - CONFIG="--enable-trace-backends=log,simple,syslog --disable-system" 250c21d7efcSDaniel P. Berrangé - TEST_CMD="" 251197be697SDaniel P. Berrangé 252197be697SDaniel P. Berrangé 253097aebd8SPhilippe Mathieu-Daudé - name: "GCC trace ftrace (x86_64-softmmu)" 254097aebd8SPhilippe Mathieu-Daudé env: 255c21d7efcSDaniel P. Berrangé - CONFIG="--enable-trace-backends=ftrace --target-list=x86_64-softmmu" 256c21d7efcSDaniel P. Berrangé - TEST_CMD="" 257197be697SDaniel P. Berrangé 258197be697SDaniel P. Berrangé 259097aebd8SPhilippe Mathieu-Daudé - name: "GCC trace ust (x86_64-softmmu)" 260097aebd8SPhilippe Mathieu-Daudé env: 261c21d7efcSDaniel P. Berrangé - CONFIG="--enable-trace-backends=ust --target-list=x86_64-softmmu" 262c21d7efcSDaniel P. Berrangé - TEST_CMD="" 263197be697SDaniel P. Berrangé 264197be697SDaniel P. Berrangé 265fb224688SAlex Bennée # MacOSX builds - cirrus.yml also tests some MacOS builds including latest Xcode 266197be697SDaniel P. Berrangé 267097aebd8SPhilippe Mathieu-Daudé - name: "OSX Xcode 10.3" 268097aebd8SPhilippe Mathieu-Daudé env: 269cd7507cbSPhilippe Mathieu-Daudé - CONFIG="--target-list=i386-softmmu,ppc-softmmu,ppc64-softmmu,m68k-softmmu,x86_64-softmmu" 270cd7507cbSPhilippe Mathieu-Daudé os: osx 2710cb3e7baSAlex Bennée osx_image: xcode10.3 272cd7507cbSPhilippe Mathieu-Daudé compiler: clang 273289c8e59SAlex Bennée addons: 274289c8e59SAlex Bennée homebrew: 275289c8e59SAlex Bennée packages: 276289c8e59SAlex Bennée - ccache 277289c8e59SAlex Bennée - glib 278289c8e59SAlex Bennée - pixman 279289c8e59SAlex Bennée - gnu-sed 280289c8e59SAlex Bennée - python 281289c8e59SAlex Bennée update: true 2826e3bd8a0SAlex Bennée before_script: 283289c8e59SAlex Bennée - brew link --overwrite python 2846e3bd8a0SAlex Bennée - export PATH="/usr/local/opt/ccache/libexec:$PATH" 2856e3bd8a0SAlex Bennée - mkdir -p ${BUILD_DIR} && cd ${BUILD_DIR} 2866e3bd8a0SAlex Bennée - ${SRC_DIR}/configure ${BASE_CONFIG} ${CONFIG} || { cat config.log && exit 1; } 287cd7507cbSPhilippe Mathieu-Daudé 288cd7507cbSPhilippe Mathieu-Daudé 289ae6d692dSAlex Bennée # Python builds 290097aebd8SPhilippe Mathieu-Daudé - name: "GCC Python 3.5 (x86_64-softmmu)" 291097aebd8SPhilippe Mathieu-Daudé env: 292c21d7efcSDaniel P. Berrangé - CONFIG="--target-list=x86_64-softmmu" 2937d183c54SPhilippe Mathieu-Daudé - CACHE_NAME="${TRAVIS_BRANCH}-linux-gcc-default" 29453fefde4SCleber Rosa language: python 2958e73a3c5SDaniel P. Berrange python: 29649233804SEduardo Habkost - "3.5" 297197be697SDaniel P. Berrangé 298197be697SDaniel P. Berrangé 299097aebd8SPhilippe Mathieu-Daudé - name: "GCC Python 3.6 (x86_64-softmmu)" 300097aebd8SPhilippe Mathieu-Daudé env: 301c21d7efcSDaniel P. Berrangé - CONFIG="--target-list=x86_64-softmmu" 3027d183c54SPhilippe Mathieu-Daudé - CACHE_NAME="${TRAVIS_BRANCH}-linux-gcc-default" 30353fefde4SCleber Rosa language: python 3048e73a3c5SDaniel P. Berrange python: 3058e73a3c5SDaniel P. Berrange - "3.6" 306197be697SDaniel P. Berrangé 307197be697SDaniel P. Berrangé 308aa983ff6SCleber Rosa # Acceptance (Functional) tests 309097aebd8SPhilippe Mathieu-Daudé - name: "GCC check-acceptance" 310097aebd8SPhilippe Mathieu-Daudé env: 3115311cb12SPhilippe Mathieu-Daudé - CONFIG="--target-list=x86_64-softmmu,mips-softmmu,mips64el-softmmu,aarch64-softmmu,arm-softmmu,s390x-softmmu,alpha-softmmu,ppc-softmmu,ppc64-softmmu,m68k-softmmu,sparc-softmmu" 3120b98c20aSEduardo Habkost - TEST_CMD="make check-acceptance" 31367892c95SWainer dos Santos Moschetta after_script: 31467892c95SWainer dos Santos Moschetta - python3 -c 'import json; r = json.load(open("tests/results/latest/results.json")); [print(t["logfile"]) for t in r["tests"] if t["status"] not in ("PASS", "SKIP")]' | xargs cat 315aa983ff6SCleber Rosa addons: 316aa983ff6SCleber Rosa apt: 317aa983ff6SCleber Rosa packages: 31825311649SPhilippe Mathieu-Daudé - python3-pil 319aa983ff6SCleber Rosa - python3-pip 32095310576SAlex Bennée - python3.5-venv 32125311649SPhilippe Mathieu-Daudé - tesseract-ocr 32225311649SPhilippe Mathieu-Daudé - tesseract-ocr-eng 32325311649SPhilippe Mathieu-Daudé 32425311649SPhilippe Mathieu-Daudé 32532265288SAlex Bennée # Using newer GCC with sanitizers 326097aebd8SPhilippe Mathieu-Daudé - name: "GCC9 with sanitizers (softmmu)" 327097aebd8SPhilippe Mathieu-Daudé addons: 32832265288SAlex Bennée apt: 329ac07ffc6SAlex Bennée update: true 33032265288SAlex Bennée sources: 33132265288SAlex Bennée # PPAs for newer toolchains 33232265288SAlex Bennée - ubuntu-toolchain-r-test 33332265288SAlex Bennée packages: 33432265288SAlex Bennée # Extra toolchains 3353998c25eSAlex Bennée - gcc-9 3363998c25eSAlex Bennée - g++-9 33732265288SAlex Bennée # Build dependencies 33832265288SAlex Bennée - libaio-dev 33932265288SAlex Bennée - libattr1-dev 34032265288SAlex Bennée - libbrlapi-dev 34132265288SAlex Bennée - libcap-ng-dev 34232265288SAlex Bennée - libgnutls-dev 34332265288SAlex Bennée - libgtk-3-dev 34432265288SAlex Bennée - libiscsi-dev 34532265288SAlex Bennée - liblttng-ust-dev 34632265288SAlex Bennée - libnfs-dev 34732265288SAlex Bennée - libncurses5-dev 34832265288SAlex Bennée - libnss3-dev 34932265288SAlex Bennée - libpixman-1-dev 35032265288SAlex Bennée - libpng12-dev 35132265288SAlex Bennée - librados-dev 352241e7955SThomas Huth - libsdl2-dev 353241e7955SThomas Huth - libsdl2-image-dev 35432265288SAlex Bennée - libseccomp-dev 35532265288SAlex Bennée - libspice-protocol-dev 35632265288SAlex Bennée - libspice-server-dev 357b10d49d7SPino Toscano - libssh-dev 35832265288SAlex Bennée - liburcu-dev 35932265288SAlex Bennée - libusb-1.0-0-dev 36095310576SAlex Bennée - libvte-2.91-dev 36132265288SAlex Bennée - sparse 36232265288SAlex Bennée - uuid-dev 36332265288SAlex Bennée language: generic 36432265288SAlex Bennée compiler: none 36532265288SAlex Bennée env: 3663998c25eSAlex Bennée - COMPILER_NAME=gcc CXX=g++-9 CC=gcc-9 3673998c25eSAlex Bennée - CONFIG="--cc=gcc-9 --cxx=g++-9 --disable-pie --disable-linux-user" 36832265288SAlex Bennée - TEST_CMD="" 36932265288SAlex Bennée before_script: 370bc4486fbSPaolo Bonzini - mkdir -p ${BUILD_DIR} && cd ${BUILD_DIR} 371db5adeaaSPaolo Bonzini - ${SRC_DIR}/configure ${CONFIG} --extra-cflags="-g3 -O0 -Wno-error=stringop-truncation -fsanitize=thread" --extra-ldflags="-fuse-ld=gold" || { cat config.log && exit 1; } 372197be697SDaniel P. Berrangé 373197be697SDaniel P. Berrangé 374dab3a7c0SAlex Bennée # Run check-tcg against linux-user 375097aebd8SPhilippe Mathieu-Daudé - name: "GCC check-tcg (user)" 376097aebd8SPhilippe Mathieu-Daudé env: 3772efabbe1SAlex Bennée - CONFIG="--disable-system --enable-debug-tcg" 378*4f46afd9SAlex Bennée - TEST_BUILD_CMD="make -j${JOBS} build-tcg" 379*4f46afd9SAlex Bennée - TEST_CMD="make check-tcg" 38019633df8SAlex Bennée - CACHE_NAME="${TRAVIS_BRANCH}-linux-gcc-debug-tcg" 3817d183c54SPhilippe Mathieu-Daudé 382dab3a7c0SAlex Bennée 3834fbddb5dSAlex Bennée # Run check-tcg against linux-user (with plugins) 3844fbddb5dSAlex Bennée # we skip sparc64-linux-user until it has been fixed somewhat 385097aebd8SPhilippe Mathieu-Daudé - name: "GCC plugins check-tcg (user)" 386097aebd8SPhilippe Mathieu-Daudé env: 38719633df8SAlex Bennée - CONFIG="--disable-system --enable-plugins --enable-debug-tcg --target-list-exclude=sparc64-linux-user" 388*4f46afd9SAlex Bennée - TEST_BUILD_CMD="make -j${JOBS} build-tcg" 389*4f46afd9SAlex Bennée - TEST_CMD="make check-tcg" 39019633df8SAlex Bennée - CACHE_NAME="${TRAVIS_BRANCH}-linux-gcc-debug-tcg" 391e2576f9bSDaniel P. Berrangé 392dab3a7c0SAlex Bennée 393dab3a7c0SAlex Bennée # Run check-tcg against softmmu targets 394097aebd8SPhilippe Mathieu-Daudé - name: "GCC check-tcg (some-softmmu)" 395097aebd8SPhilippe Mathieu-Daudé env: 3962efabbe1SAlex Bennée - CONFIG="--enable-debug-tcg --target-list=xtensa-softmmu,arm-softmmu,aarch64-softmmu,alpha-softmmu" 397*4f46afd9SAlex Bennée - TEST_BUILD_CMD="make -j${JOBS} build-tcg" 398*4f46afd9SAlex Bennée - TEST_CMD="make check-tcg" 39919633df8SAlex Bennée - CACHE_NAME="${TRAVIS_BRANCH}-linux-gcc-debug-tcg" 40061ac3dccSPhilippe Mathieu-Daudé 40161ac3dccSPhilippe Mathieu-Daudé 4024fbddb5dSAlex Bennée # Run check-tcg against softmmu targets (with plugins) 403097aebd8SPhilippe Mathieu-Daudé - name: "GCC plugins check-tcg (some-softmmu)" 404097aebd8SPhilippe Mathieu-Daudé env: 40519633df8SAlex Bennée - CONFIG="--enable-plugins --enable-debug-tcg --target-list=xtensa-softmmu,arm-softmmu,aarch64-softmmu,alpha-softmmu" 406*4f46afd9SAlex Bennée - TEST_BUILD_CMD="make -j${JOBS} build-tcg" 407*4f46afd9SAlex Bennée - TEST_CMD="make check-tcg" 40819633df8SAlex Bennée - CACHE_NAME="${TRAVIS_BRANCH}-linux-gcc-debug-tcg" 40961ac3dccSPhilippe Mathieu-Daudé 410097aebd8SPhilippe Mathieu-Daudé - name: "[aarch64] GCC check-tcg" 411097aebd8SPhilippe Mathieu-Daudé arch: arm64 4129c5941a9SThomas Huth dist: xenial 4139c5941a9SThomas Huth addons: 4149c5941a9SThomas Huth apt_packages: 4159c5941a9SThomas Huth - libaio-dev 4169c5941a9SThomas Huth - libattr1-dev 4179c5941a9SThomas Huth - libbrlapi-dev 4189c5941a9SThomas Huth - libcap-ng-dev 4199c5941a9SThomas Huth - libgcrypt20-dev 4209c5941a9SThomas Huth - libgnutls28-dev 4219c5941a9SThomas Huth - libgtk-3-dev 4229c5941a9SThomas Huth - libiscsi-dev 4239c5941a9SThomas Huth - liblttng-ust-dev 4249c5941a9SThomas Huth - libncurses5-dev 4259c5941a9SThomas Huth - libnfs-dev 4269c5941a9SThomas Huth - libnss3-dev 4279c5941a9SThomas Huth - libpixman-1-dev 4289c5941a9SThomas Huth - libpng-dev 4299c5941a9SThomas Huth - librados-dev 4309c5941a9SThomas Huth - libsdl2-dev 4319c5941a9SThomas Huth - libseccomp-dev 4329c5941a9SThomas Huth - liburcu-dev 4339c5941a9SThomas Huth - libusb-1.0-0-dev 4349c5941a9SThomas Huth - libvdeplug-dev 4359c5941a9SThomas Huth - libvte-2.91-dev 43658a1e5b6SWainer dos Santos Moschetta # Tests dependencies 43758a1e5b6SWainer dos Santos Moschetta - genisoimage 4389c5941a9SThomas Huth env: 4399c5941a9SThomas Huth - TEST_CMD="make check check-tcg V=1" 4409c5941a9SThomas Huth - CONFIG="--disable-containers --target-list=${MAIN_SOFTMMU_TARGETS}" 4419c5941a9SThomas Huth 442097aebd8SPhilippe Mathieu-Daudé - name: "[ppc64] GCC check-tcg" 443097aebd8SPhilippe Mathieu-Daudé arch: ppc64le 4449c5941a9SThomas Huth dist: xenial 4459c5941a9SThomas Huth addons: 4469c5941a9SThomas Huth apt_packages: 4479c5941a9SThomas Huth - libaio-dev 4489c5941a9SThomas Huth - libattr1-dev 4499c5941a9SThomas Huth - libbrlapi-dev 4509c5941a9SThomas Huth - libcap-ng-dev 4519c5941a9SThomas Huth - libgcrypt20-dev 4529c5941a9SThomas Huth - libgnutls28-dev 4539c5941a9SThomas Huth - libgtk-3-dev 4549c5941a9SThomas Huth - libiscsi-dev 4559c5941a9SThomas Huth - liblttng-ust-dev 4569c5941a9SThomas Huth - libncurses5-dev 4579c5941a9SThomas Huth - libnfs-dev 4589c5941a9SThomas Huth - libnss3-dev 4599c5941a9SThomas Huth - libpixman-1-dev 4609c5941a9SThomas Huth - libpng-dev 4619c5941a9SThomas Huth - librados-dev 4629c5941a9SThomas Huth - libsdl2-dev 4639c5941a9SThomas Huth - libseccomp-dev 4649c5941a9SThomas Huth - liburcu-dev 4659c5941a9SThomas Huth - libusb-1.0-0-dev 4669c5941a9SThomas Huth - libvdeplug-dev 4679c5941a9SThomas Huth - libvte-2.91-dev 46858a1e5b6SWainer dos Santos Moschetta # Tests dependencies 46958a1e5b6SWainer dos Santos Moschetta - genisoimage 4709c5941a9SThomas Huth env: 4719c5941a9SThomas Huth - TEST_CMD="make check check-tcg V=1" 4729c5941a9SThomas Huth - CONFIG="--disable-containers --target-list=${MAIN_SOFTMMU_TARGETS},ppc64le-linux-user" 4739c5941a9SThomas Huth 474097aebd8SPhilippe Mathieu-Daudé - name: "[s390x] GCC check-tcg" 475097aebd8SPhilippe Mathieu-Daudé arch: s390x 4769c5941a9SThomas Huth dist: bionic 4779c5941a9SThomas Huth addons: 4789c5941a9SThomas Huth apt_packages: 4799c5941a9SThomas Huth - libaio-dev 4809c5941a9SThomas Huth - libattr1-dev 4819c5941a9SThomas Huth - libbrlapi-dev 4829c5941a9SThomas Huth - libcap-ng-dev 4839c5941a9SThomas Huth - libgcrypt20-dev 4849c5941a9SThomas Huth - libgnutls28-dev 4859c5941a9SThomas Huth - libgtk-3-dev 4869c5941a9SThomas Huth - libiscsi-dev 4879c5941a9SThomas Huth - liblttng-ust-dev 4889c5941a9SThomas Huth - libncurses5-dev 4899c5941a9SThomas Huth - libnfs-dev 4909c5941a9SThomas Huth - libnss3-dev 4919c5941a9SThomas Huth - libpixman-1-dev 4929c5941a9SThomas Huth - libpng-dev 4939c5941a9SThomas Huth - librados-dev 4949c5941a9SThomas Huth - libsdl2-dev 4959c5941a9SThomas Huth - libseccomp-dev 4969c5941a9SThomas Huth - liburcu-dev 4979c5941a9SThomas Huth - libusb-1.0-0-dev 4989c5941a9SThomas Huth - libvdeplug-dev 4999c5941a9SThomas Huth - libvte-2.91-dev 50058a1e5b6SWainer dos Santos Moschetta # Tests dependencies 50158a1e5b6SWainer dos Santos Moschetta - genisoimage 5029c5941a9SThomas Huth env: 5039c5941a9SThomas Huth - TEST_CMD="make check check-tcg V=1" 5049c5941a9SThomas Huth - CONFIG="--disable-containers --target-list=${MAIN_SOFTMMU_TARGETS},s390x-linux-user" 50561ac3dccSPhilippe Mathieu-Daudé 50661ac3dccSPhilippe Mathieu-Daudé # Release builds 50761ac3dccSPhilippe Mathieu-Daudé # The make-release script expect a QEMU version, so our tag must start with a 'v'. 50861ac3dccSPhilippe Mathieu-Daudé # This is the case when release candidate tags are created. 509097aebd8SPhilippe Mathieu-Daudé - name: "Release tarball" 510097aebd8SPhilippe Mathieu-Daudé if: tag IS present AND tag =~ /^v\d+\.\d+(\.\d+)?(-\S*)?$/ 51161ac3dccSPhilippe Mathieu-Daudé env: 51261ac3dccSPhilippe Mathieu-Daudé # We want to build from the release tarball 51361ac3dccSPhilippe Mathieu-Daudé - BUILD_DIR="release/build/dir" SRC_DIR="../../.." 51461ac3dccSPhilippe Mathieu-Daudé - BASE_CONFIG="--prefix=$PWD/dist" 51561ac3dccSPhilippe Mathieu-Daudé - CONFIG="--target-list=x86_64-softmmu,aarch64-softmmu,armeb-linux-user,ppc-linux-user" 5160a7c0ae0SAlex Bennée - TEST_CMD="make install -j${JOBS}" 51761ac3dccSPhilippe Mathieu-Daudé - QEMU_VERSION="${TRAVIS_TAG:1}" 51861ac3dccSPhilippe Mathieu-Daudé - CACHE_NAME="${TRAVIS_BRANCH}-linux-gcc-default" 51961ac3dccSPhilippe Mathieu-Daudé script: 52061ac3dccSPhilippe Mathieu-Daudé - make -C ${SRC_DIR} qemu-${QEMU_VERSION}.tar.bz2 52161ac3dccSPhilippe Mathieu-Daudé - ls -l ${SRC_DIR}/qemu-${QEMU_VERSION}.tar.bz2 52261ac3dccSPhilippe Mathieu-Daudé - tar -xf ${SRC_DIR}/qemu-${QEMU_VERSION}.tar.bz2 && cd qemu-${QEMU_VERSION} 523bc4486fbSPaolo Bonzini - mkdir -p release-build && cd release-build 524bc4486fbSPaolo Bonzini - ../configure ${BASE_CONFIG} ${CONFIG} || { cat config.log && exit 1; } 52561ac3dccSPhilippe Mathieu-Daudé - make install 526