qemu/.travis.yml
<<
>>
Prefs
   1sudo: false
   2language: c
   3python:
   4  - "2.6"
   5compiler:
   6  - gcc
   7cache: ccache
   8addons:
   9  apt:
  10    packages:
  11      # Build dependencies
  12      - libaio-dev
  13      - libattr1-dev
  14      - libbrlapi-dev
  15      - libcap-ng-dev
  16      - libgcc-4.8-dev
  17      - libgnutls-dev
  18      - libgtk-3-dev
  19      - libiscsi-dev
  20      - liblttng-ust-dev
  21      - libncurses5-dev
  22      - libnfs-dev
  23      - libnss3-dev
  24      - libpixman-1-dev
  25      - libpng12-dev
  26      - librados-dev
  27      - libsdl1.2-dev
  28      - libseccomp-dev
  29      - libspice-protocol-dev
  30      - libspice-server-dev
  31      - libssh2-1-dev
  32      - liburcu-dev
  33      - libusb-1.0-0-dev
  34      - libvte-2.90-dev
  35      - sparse
  36      - uuid-dev
  37
  38# The channel name "irc.oftc.net#qemu" is encrypted against qemu/qemu
  39# to prevent IRC notifications from forks. This was created using:
  40# $ travis encrypt -r "qemu/qemu" "irc.oftc.net#qemu"
  41notifications:
  42  irc:
  43    channels:
  44      - secure: "F7GDRgjuOo5IUyRLqSkmDL7kvdU4UcH3Lm/W2db2JnDHTGCqgEdaYEYKciyCLZ57vOTsTsOgesN8iUT7hNHBd1KWKjZe9KDTZWppWRYVwAwQMzVeSOsbbU4tRoJ6Pp+3qhH1Z0eGYR9ZgKYAoTumDFgSAYRp4IscKS8jkoedOqM="
  45    on_success: change
  46    on_failure: always
  47env:
  48  global:
  49    - TEST_CMD="make check"
  50    - MAKEFLAGS="-j3"
  51  matrix:
  52    - CONFIG="--disable-system"
  53    - CONFIG="--disable-user"
  54    - CONFIG="--enable-debug --enable-debug-tcg"
  55    - CONFIG="--disable-linux-aio --disable-cap-ng --disable-attr --disable-brlapi --disable-uuid --disable-libusb --disable-user"
  56    - CONFIG="--enable-modules --disable-linux-user"
  57    - CONFIG="--with-coroutine=ucontext --disable-linux-user"
  58    - CONFIG="--with-coroutine=sigaltstack --disable-linux-user"
  59git:
  60  # we want to do this ourselves
  61  submodules: false
  62before_install:
  63  - if [ "$TRAVIS_OS_NAME" == "osx" ]; then brew update ; fi
  64  - if [ "$TRAVIS_OS_NAME" == "osx" ]; then brew install libffi gettext glib pixman ; fi
  65  - wget -O - http://people.linaro.org/~alex.bennee/qemu-submodule-git-seed.tar.xz | tar -xvJ
  66  - git submodule update --init --recursive
  67before_script:
  68  - ./configure ${CONFIG}
  69script:
  70  - make ${MAKEFLAGS} && ${TEST_CMD}
  71matrix:
  72  include:
  73    # Test with CLang for compile portability
  74    - env: CONFIG=""
  75      compiler: clang
  76    # gprof/gcov are GCC features
  77    - env: CONFIG="--enable-gprof --enable-gcov --disable-pie"
  78      compiler: gcc
  79    # We manually include builds which we disable "make check" for
  80    - env: CONFIG="--enable-debug --enable-tcg-interpreter"
  81           TEST_CMD=""
  82      compiler: gcc
  83    - env: CONFIG="--enable-trace-backends=simple"
  84           TEST_CMD=""
  85      compiler: gcc
  86    - env: CONFIG="--enable-trace-backends=ftrace"
  87           TEST_CMD=""
  88      compiler: gcc
  89    - env: CONFIG="--enable-trace-backends=ust"
  90           TEST_CMD=""
  91      compiler: gcc
  92    - env: CONFIG="--disable-tcg"
  93           TEST_CMD=""
  94      compiler: gcc
  95    - env: CONFIG=""
  96      os: osx
  97      compiler: clang
  98    # Plain Trusty System Build
  99    - env: CONFIG="--disable-linux-user"
 100      sudo: required
 101      addons:
 102      dist: trusty
 103      compiler: gcc
 104      before_install:
 105        - sudo apt-get update -qq
 106        - sudo apt-get build-dep -qq qemu
 107        - wget -O - http://people.linaro.org/~alex.bennee/qemu-submodule-git-seed.tar.xz | tar -xvJ
 108        - git submodule update --init --recursive
 109    # Plain Trusty Linux User Build
 110    - env: CONFIG="--disable-system"
 111      sudo: required
 112      addons:
 113      dist: trusty
 114      compiler: gcc
 115      before_install:
 116        - sudo apt-get update -qq
 117        - sudo apt-get build-dep -qq qemu
 118        - wget -O - http://people.linaro.org/~alex.bennee/qemu-submodule-git-seed.tar.xz | tar -xvJ
 119        - git submodule update --init --recursive
 120    # Trusty System build with latest stable clang & python 3.0
 121    - sudo: required
 122      addons:
 123      dist: trusty
 124      language: generic
 125      compiler: none
 126      python:
 127        - "3.0"
 128      env:
 129        - COMPILER_NAME=clang CXX=clang++-3.9 CC=clang-3.9
 130        - CONFIG="--disable-linux-user --cc=clang-3.9 --cxx=clang++-3.9 --python=/usr/bin/python3"
 131      before_install:
 132        - wget -nv -O - http://llvm.org/apt/llvm-snapshot.gpg.key | sudo apt-key add -
 133        - sudo apt-add-repository -y 'deb http://llvm.org/apt/trusty llvm-toolchain-trusty-3.9 main'
 134        - sudo apt-get update -qq
 135        - sudo apt-get install -qq -y clang-3.9
 136        - sudo apt-get build-dep -qq qemu
 137        - wget -O - http://people.linaro.org/~alex.bennee/qemu-submodule-git-seed.tar.xz | tar -xvJ
 138        - git submodule update --init --recursive
 139      before_script:
 140        - ./configure ${CONFIG} || cat config.log
 141    # Trusty Linux User build with latest stable clang & python 3.6
 142    - sudo: required
 143      addons:
 144      dist: trusty
 145      language: generic
 146      compiler: none
 147      python:
 148        - "3.6"
 149      env:
 150        - COMPILER_NAME=clang CXX=clang++-3.9 CC=clang-3.9
 151        - CONFIG="--disable-system --cc=clang-3.9 --cxx=clang++-3.9 --python=/usr/bin/python3"
 152      before_install:
 153        - wget -nv -O - http://llvm.org/apt/llvm-snapshot.gpg.key | sudo apt-key add -
 154        - sudo apt-add-repository -y 'deb http://llvm.org/apt/trusty llvm-toolchain-trusty-3.9 main'
 155        - sudo apt-get update -qq
 156        - sudo apt-get install -qq -y clang-3.9
 157        - sudo apt-get build-dep -qq qemu
 158        - wget -O - http://people.linaro.org/~alex.bennee/qemu-submodule-git-seed.tar.xz | tar -xvJ
 159        - git submodule update --init --recursive
 160      before_script:
 161        - ./configure ${CONFIG} || cat config.log
 162    # Using newer GCC with sanitizers
 163    - addons:
 164        apt:
 165          sources:
 166            # PPAs for newer toolchains
 167            - ubuntu-toolchain-r-test
 168          packages:
 169            # Extra toolchains
 170            - gcc-5
 171            - g++-5
 172            # Build dependencies
 173            - libaio-dev
 174            - libattr1-dev
 175            - libbrlapi-dev
 176            - libcap-ng-dev
 177            - libgnutls-dev
 178            - libgtk-3-dev
 179            - libiscsi-dev
 180            - liblttng-ust-dev
 181            - libnfs-dev
 182            - libncurses5-dev
 183            - libnss3-dev
 184            - libpixman-1-dev
 185            - libpng12-dev
 186            - librados-dev
 187            - libsdl1.2-dev
 188            - libseccomp-dev
 189            - libspice-protocol-dev
 190            - libspice-server-dev
 191            - libssh2-1-dev
 192            - liburcu-dev
 193            - libusb-1.0-0-dev
 194            - libvte-2.90-dev
 195            - sparse
 196            - uuid-dev
 197      language: generic
 198      compiler: none
 199      env:
 200        - COMPILER_NAME=gcc CXX=g++-5 CC=gcc-5
 201        - CONFIG="--cc=gcc-5 --cxx=g++-5 --disable-pie --disable-linux-user"
 202        - TEST_CMD=""
 203      before_script:
 204        - ./configure ${CONFIG} --extra-cflags="-g3 -O0 -fsanitize=thread -fuse-ld=gold" || cat config.log
 205