qxl: check release info object
[qemu.git] / .travis.yml
1 # The current Travis default is a VM based 16.04 Xenial on GCE
2 # Additional builds with specific requirements for a full VM need to
3 # be added as additional matrix: entries later on
4 dist: xenial
5 language: c
6 compiler:
7   - gcc
8 cache: ccache
9
10
11 addons:
12   apt:
13     packages:
14       # Build dependencies
15       - libaio-dev
16       - libattr1-dev
17       - libbrlapi-dev
18       - libcap-ng-dev
19       - libgcc-4.8-dev
20       - libgnutls-dev
21       - libgtk-3-dev
22       - libiscsi-dev
23       - liblttng-ust-dev
24       - libncurses5-dev
25       - libnfs-dev
26       - libnss3-dev
27       - libpixman-1-dev
28       - libpng12-dev
29       - librados-dev
30       - libsdl1.2-dev
31       - libseccomp-dev
32       - libspice-protocol-dev
33       - libspice-server-dev
34       - libssh2-1-dev
35       - liburcu-dev
36       - libusb-1.0-0-dev
37       - libvte-2.91-dev
38       - sparse
39       - uuid-dev
40       - gcovr
41   homebrew:
42     packages:
43       - glib
44       - pixman
45
46
47 # The channel name "irc.oftc.net#qemu" is encrypted against qemu/qemu
48 # to prevent IRC notifications from forks. This was created using:
49 # $ travis encrypt -r "qemu/qemu" "irc.oftc.net#qemu"
50 notifications:
51   irc:
52     channels:
53       - secure: "F7GDRgjuOo5IUyRLqSkmDL7kvdU4UcH3Lm/W2db2JnDHTGCqgEdaYEYKciyCLZ57vOTsTsOgesN8iUT7hNHBd1KWKjZe9KDTZWppWRYVwAwQMzVeSOsbbU4tRoJ6Pp+3qhH1Z0eGYR9ZgKYAoTumDFgSAYRp4IscKS8jkoedOqM="
54     on_success: change
55     on_failure: always
56
57
58 env:
59   global:
60     - SRC_DIR="."
61     - BUILD_DIR="."
62     - BASE_CONFIG="--disable-docs --disable-tools"
63     - TEST_CMD="make check -j3 V=1"
64     # This is broadly a list of "mainline" softmmu targets which have support across the major distros
65     - MAIN_SOFTMMU_TARGETS="aarch64-softmmu,arm-softmmu,i386-softmmu,mips-softmmu,mips64-softmmu,ppc64-softmmu,riscv64-softmmu,s390x-softmmu,x86_64-softmmu"
66
67 git:
68   # we want to do this ourselves
69   submodules: false
70
71
72 before_script:
73   - mkdir -p ${BUILD_DIR} && cd ${BUILD_DIR}
74   - ${SRC_DIR}/configure ${BASE_CONFIG} ${CONFIG} || { cat config.log && exit 1; }
75 script:
76   - make -j3 && ${TEST_CMD}
77
78
79 matrix:
80   include:
81     - env:
82         - CONFIG="--disable-system"
83
84
85     # we split the system builds as it takes a while to build them all
86     - env:
87         - CONFIG="--disable-user --target-list=${MAIN_SOFTMMU_TARGETS}"
88
89
90     - env:
91         - CONFIG="--disable-user --target-list-exclude=${MAIN_SOFTMMU_TARGETS}"
92
93
94     # Just build tools and run minimal unit and softfloat checks
95     - env:
96         - BASE_CONFIG="--enable-tools"
97         - CONFIG="--disable-user --disable-system"
98         - TEST_CMD="make check-unit check-softfloat -j3"
99
100     - env:
101         - CONFIG="--enable-debug --enable-debug-tcg --disable-user"
102
103
104     # TCG debug can be run just on it's own and is mostly agnostic to user/softmmu distinctions
105     - env:
106         - CONFIG="--enable-debug-tcg --disable-system"
107
108
109     - env:
110         - CONFIG="--disable-linux-aio --disable-cap-ng --disable-attr --disable-brlapi --disable-libusb --disable-replication --target-list=${MAIN_SOFTMMU_TARGETS}"
111
112
113     # Module builds are mostly of interest to major distros
114     - env:
115         - CONFIG="--enable-modules --target-list=${MAIN_SOFTMMU_TARGETS}"
116
117
118     # Alternate coroutines implementations are only really of interest to KVM users
119     # However we can't test against KVM on Travis so we can only run unit tests
120     - env:
121         - CONFIG="--with-coroutine=ucontext --disable-tcg"
122         - TEST_CMD="make check-unit -j3 V=1"
123
124
125     - env:
126         - CONFIG="--with-coroutine=sigaltstack --disable-tcg"
127         - TEST_CMD="make check-unit -j3 V=1"
128
129
130     # Check we can build docs and tools (out of tree)
131     - env:
132         - BUILD_DIR="out-of-tree/build/dir" SRC_DIR="../../.."
133         - BASE_CONFIG="--enable-tools --enable-docs"
134         - CONFIG="--target-list=x86_64-softmmu,aarch64-linux-user"
135       addons:
136         apt:
137           packages:
138             - python-sphinx
139             - texinfo
140             - perl
141
142
143     # Test with Clang for compile portability (Travis uses clang-5.0)
144     - env:
145         - CONFIG="--disable-system"
146       compiler: clang
147
148
149     - env:
150         - CONFIG="--disable-user --target-list=${MAIN_SOFTMMU_TARGETS}"
151       compiler: clang
152
153
154     - env:
155         - CONFIG="--disable-user --target-list-exclude=${MAIN_SOFTMMU_TARGETS}"
156       compiler: clang
157
158
159     # gprof/gcov are GCC features
160     - env:
161         - CONFIG="--enable-gprof --enable-gcov --disable-pie --target-list=${MAIN_SOFTMMU_TARGETS}"
162       after_success:
163         - ${SRC_DIR}/scripts/travis/coverage-summary.sh
164
165
166     # We manually include builds which we disable "make check" for
167     - env:
168         - CONFIG="--without-default-devices --disable-user"
169         - TEST_CMD=""
170
171
172     # We manually include builds which we disable "make check" for
173     - env:
174         - CONFIG="--enable-debug --enable-tcg-interpreter"
175         - TEST_CMD=""
176
177
178     # We don't need to exercise every backend with every front-end
179     - env:
180         - CONFIG="--enable-trace-backends=log,simple,syslog --disable-system"
181         - TEST_CMD=""
182
183
184     - env:
185         - CONFIG="--enable-trace-backends=ftrace --target-list=x86_64-softmmu"
186         - TEST_CMD=""
187
188
189     - env:
190         - CONFIG="--enable-trace-backends=ust --target-list=x86_64-softmmu"
191         - TEST_CMD=""
192
193
194     # MacOSX builds
195     - env:
196         - CONFIG="--target-list=${MAIN_SOFTMMU_TARGETS}"
197       os: osx
198       osx_image: xcode9.4
199       compiler: clang
200
201
202     - env:
203         - CONFIG="--target-list=i386-softmmu,ppc-softmmu,ppc64-softmmu,m68k-softmmu,x86_64-softmmu"
204       os: osx
205       osx_image: xcode10.2
206       compiler: clang
207
208
209     # Python builds
210     - env:
211         - CONFIG="--target-list=x86_64-softmmu"
212       language: python
213       python:
214         - "3.4"
215
216
217     - env:
218         - CONFIG="--target-list=x86_64-softmmu"
219       language: python
220       python:
221         - "3.6"
222
223
224     # Acceptance (Functional) tests
225     - env:
226         - CONFIG="--python=/usr/bin/python3 --target-list=x86_64-softmmu,mips-softmmu,mips64el-softmmu,aarch64-softmmu,arm-softmmu,s390x-softmmu,alpha-softmmu"
227         - TEST_CMD="make check-acceptance"
228       addons:
229         apt:
230           packages:
231             - python3-pip
232             - python3.5-venv
233     # Using newer GCC with sanitizers
234     - addons:
235         apt:
236           update: true
237           sources:
238             # PPAs for newer toolchains
239             - ubuntu-toolchain-r-test
240           packages:
241             # Extra toolchains
242             - gcc-7
243             - g++-7
244             # Build dependencies
245             - libaio-dev
246             - libattr1-dev
247             - libbrlapi-dev
248             - libcap-ng-dev
249             - libgnutls-dev
250             - libgtk-3-dev
251             - libiscsi-dev
252             - liblttng-ust-dev
253             - libnfs-dev
254             - libncurses5-dev
255             - libnss3-dev
256             - libpixman-1-dev
257             - libpng12-dev
258             - librados-dev
259             - libsdl1.2-dev
260             - libseccomp-dev
261             - libspice-protocol-dev
262             - libspice-server-dev
263             - libssh2-1-dev
264             - liburcu-dev
265             - libusb-1.0-0-dev
266             - libvte-2.91-dev
267             - sparse
268             - uuid-dev
269       language: generic
270       compiler: none
271       env:
272         - COMPILER_NAME=gcc CXX=g++-7 CC=gcc-7
273         - CONFIG="--cc=gcc-7 --cxx=g++-7 --disable-pie --disable-linux-user"
274         - TEST_CMD=""
275       before_script:
276         - ./configure ${CONFIG} --extra-cflags="-g3 -O0 -fsanitize=thread -fuse-ld=gold" || { cat config.log && exit 1; }
277
278
279     # Run check-tcg against linux-user
280     - env:
281         - CONFIG="--disable-system"
282         - TEST_CMD="make -j3 check-tcg V=1"
283
284     # Run check-tcg against softmmu targets
285     - env:
286         - CONFIG="--target-list=xtensa-softmmu,arm-softmmu"
287         - TEST_CMD="make -j3 check-tcg V=1"