Merge remote-tracking branch 'remotes/stefanha/tags/block-pull-request' into staging
[qemu.git] / .travis.yml
1 sudo: false
2 language: c
3 python:
4   - "2.4"
5 compiler:
6   - gcc
7   - clang
8 cache: ccache
9 addons:
10   apt:
11     packages:
12       # Build dependencies
13       - libaio-dev
14       - libattr1-dev
15       - libbrlapi-dev
16       - libcap-ng-dev
17       - libgnutls-dev
18       - libgtk-3-dev
19       - libiscsi-dev
20       - liblttng-ust-dev
21       - libnfs-dev
22       - libncurses5-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"
41 notifications:
42   irc:
43     channels:
44       - secure: "F7GDRgjuOo5IUyRLqSkmDL7kvdU4UcH3Lm/W2db2JnDHTGCqgEdaYEYKciyCLZ57vOTsTsOgesN8iUT7hNHBd1KWKjZe9KDTZWppWRYVwAwQMzVeSOsbbU4tRoJ6Pp+3qhH1Z0eGYR9ZgKYAoTumDFgSAYRp4IscKS8jkoedOqM="
45     on_success: change
46     on_failure: always
47 env:
48   global:
49     - TEST_CMD="make check"
50   matrix:
51     - CONFIG=""
52     - CONFIG="--enable-debug --enable-debug-tcg --enable-trace-backends=log"
53     - CONFIG="--disable-linux-aio --disable-cap-ng --disable-attr --disable-brlapi --disable-uuid --disable-libusb"
54     - CONFIG="--enable-modules"
55     - CONFIG="--with-coroutine=ucontext"
56     - CONFIG="--with-coroutine=sigaltstack"
57 git:
58   # we want to do this ourselves
59   submodules: false
60 before_install:
61   - if [ "$TRAVIS_OS_NAME" == "osx" ]; then brew update ; fi
62   - if [ "$TRAVIS_OS_NAME" == "osx" ]; then brew install libffi gettext glib pixman ; fi
63   - wget -O - http://people.linaro.org/~alex.bennee/qemu-submodule-git-seed.tar.xz | tar -xvJ
64   - git submodule update --init --recursive
65 before_script:
66   - ./configure ${CONFIG}
67 script:
68   - make -j3 && ${TEST_CMD}
69 matrix:
70   include:
71     # gprof/gcov are GCC features
72     - env: CONFIG="--enable-gprof --enable-gcov --disable-pie"
73       compiler: gcc
74     # We manually include builds which we disable "make check" for
75     - env: CONFIG="--enable-debug --enable-tcg-interpreter"
76            TEST_CMD=""
77       compiler: gcc
78     - env: CONFIG="--enable-trace-backends=simple"
79            TEST_CMD=""
80       compiler: gcc
81     - env: CONFIG="--enable-trace-backends=ftrace"
82            TEST_CMD=""
83       compiler: gcc
84     - env: CONFIG="--enable-trace-backends=ust"
85            TEST_CMD=""
86       compiler: gcc
87     - env: CONFIG="--with-coroutine=gthread"
88            TEST_CMD=""
89       compiler: gcc
90     - env: CONFIG=""
91       os: osx
92       compiler: clang
93     # Plain Trusty Build
94     - env: CONFIG=""
95       sudo: required
96       addons:
97       dist: trusty
98       compiler: gcc
99       before_install:
100         - sudo apt-get update -qq
101         - sudo apt-get build-dep -qq qemu
102         - wget -O - http://people.linaro.org/~alex.bennee/qemu-submodule-git-seed.tar.xz | tar -xvJ
103         - git submodule update --init --recursive
104     # Using newer GCC with sanitizers
105     - addons:
106         apt:
107           sources:
108             # PPAs for newer toolchains
109             - ubuntu-toolchain-r-test
110           packages:
111             # Extra toolchains
112             - gcc-5
113             - g++-5
114             # Build dependencies
115             - libaio-dev
116             - libattr1-dev
117             - libbrlapi-dev
118             - libcap-ng-dev
119             - libgnutls-dev
120             - libgtk-3-dev
121             - libiscsi-dev
122             - liblttng-ust-dev
123             - libnfs-dev
124             - libncurses5-dev
125             - libnss3-dev
126             - libpixman-1-dev
127             - libpng12-dev
128             - librados-dev
129             - libsdl1.2-dev
130             - libseccomp-dev
131             - libspice-protocol-dev
132             - libspice-server-dev
133             - libssh2-1-dev
134             - liburcu-dev
135             - libusb-1.0-0-dev
136             - libvte-2.90-dev
137             - sparse
138             - uuid-dev
139       language: generic
140       compiler: none
141       env:
142         - COMPILER_NAME=gcc CXX=g++-5 CC=gcc-5
143         - CONFIG="--cc=gcc-5 --cxx=g++-5 --disable-pie --disable-linux-user --with-coroutine=gthread"
144         - TEST_CMD=""
145       before_script:
146         - ./configure ${CONFIG} --extra-cflags="-g3 -O0 -fsanitize=thread -fuse-ld=gold" || cat config.log