]> git.proxmox.com Git - mirror_qemu.git/blame - .travis.yml
.travis.yml: Cache Avocado cache
[mirror_qemu.git] / .travis.yml
CommitLineData
95310576
AB
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
4dist: xenial
fe863ab9 5language: c
fe863ab9
AB
6compiler:
7 - gcc
4bc629b2 8cache:
731cbb64 9 timeout: 1200
4bc629b2 10 ccache: true
6e189d78 11 pip: true
c1073e44
PMD
12 directories:
13 - $HOME/avocado/data/cache
197be697
DB
14
15
692d162c
AB
16addons:
17 apt:
18 packages:
32265288 19 # Build dependencies
692d162c
AB
20 - libaio-dev
21 - libattr1-dev
22 - libbrlapi-dev
23 - libcap-ng-dev
7524a39d 24 - libgcc-4.8-dev
692d162c
AB
25 - libgnutls-dev
26 - libgtk-3-dev
27 - libiscsi-dev
28 - liblttng-ust-dev
29 - libncurses5-dev
d83414e1 30 - libnfs-dev
692d162c
AB
31 - libnss3-dev
32 - libpixman-1-dev
33 - libpng12-dev
34 - librados-dev
35 - libsdl1.2-dev
36 - libseccomp-dev
37 - libspice-protocol-dev
38 - libspice-server-dev
b10d49d7 39 - libssh-dev
692d162c
AB
40 - liburcu-dev
41 - libusb-1.0-0-dev
95310576 42 - libvte-2.91-dev
692d162c
AB
43 - sparse
44 - uuid-dev
0708e647 45 - gcovr
91fa7dd1
AB
46 homebrew:
47 packages:
91fa7dd1
AB
48 - glib
49 - pixman
db2b95d5 50 - gnu-sed
71451cff 51 update: true
692d162c 52
197be697 53
cb4c2536
PK
54# The channel name "irc.oftc.net#qemu" is encrypted against qemu/qemu
55# to prevent IRC notifications from forks. This was created using:
56# $ travis encrypt -r "qemu/qemu" "irc.oftc.net#qemu"
39d16d29
AB
57notifications:
58 irc:
59 channels:
cb4c2536 60 - secure: "F7GDRgjuOo5IUyRLqSkmDL7kvdU4UcH3Lm/W2db2JnDHTGCqgEdaYEYKciyCLZ57vOTsTsOgesN8iUT7hNHBd1KWKjZe9KDTZWppWRYVwAwQMzVeSOsbbU4tRoJ6Pp+3qhH1Z0eGYR9ZgKYAoTumDFgSAYRp4IscKS8jkoedOqM="
39d16d29
AB
61 on_success: change
62 on_failure: always
197be697
DB
63
64
fe863ab9
AB
65env:
66 global:
ebf2ff65
PMD
67 - SRC_DIR="."
68 - BUILD_DIR="."
570f3c77 69 - BASE_CONFIG="--disable-docs --disable-tools"
e2576f9b 70 - TEST_CMD="make check -j3 V=1"
8c3daf97
AB
71 # This is broadly a list of "mainline" softmmu targets which have support across the major distros
72 - MAIN_SOFTMMU_TARGETS="aarch64-softmmu,arm-softmmu,i386-softmmu,mips-softmmu,mips64-softmmu,ppc64-softmmu,riscv64-softmmu,s390x-softmmu,x86_64-softmmu"
197be697 73
cb021cfe
AB
74git:
75 # we want to do this ourselves
76 submodules: false
197be697
DB
77
78
eebf2940 79before_script:
ebf2ff65 80 - mkdir -p ${BUILD_DIR} && cd ${BUILD_DIR}
570f3c77 81 - ${SRC_DIR}/configure ${BASE_CONFIG} ${CONFIG} || { cat config.log && exit 1; }
eebf2940 82script:
3a37c13f 83 - make -j3 && travis_retry ${TEST_CMD}
197be697
DB
84
85
fe863ab9 86matrix:
fe863ab9 87 include:
c21d7efc 88 - env:
c3c1874a 89 - CONFIG="--disable-system --static"
3e094234
DB
90
91
8c3daf97
AB
92 # we split the system builds as it takes a while to build them all
93 - env:
94 - CONFIG="--disable-user --target-list=${MAIN_SOFTMMU_TARGETS}"
95
96
c21d7efc 97 - env:
8c3daf97 98 - CONFIG="--disable-user --target-list-exclude=${MAIN_SOFTMMU_TARGETS}"
3e094234
DB
99
100
df2bb38e
AB
101 # Just build tools and run minimal unit and softfloat checks
102 - env:
103 - BASE_CONFIG="--enable-tools"
104 - CONFIG="--disable-user --disable-system"
105 - TEST_CMD="make check-unit check-softfloat -j3"
106
c21d7efc 107 - env:
4e6e7df6
AB
108 - CONFIG="--enable-debug --enable-debug-tcg --disable-user"
109
110
111 # TCG debug can be run just on it's own and is mostly agnostic to user/softmmu distinctions
112 - env:
113 - CONFIG="--enable-debug-tcg --disable-system"
3e094234
DB
114
115
c21d7efc 116 - env:
aec2927d 117 - CONFIG="--disable-linux-aio --disable-cap-ng --disable-attr --disable-brlapi --disable-libusb --disable-replication --target-list=${MAIN_SOFTMMU_TARGETS}"
3e094234
DB
118
119
2f6c2526 120 # Module builds are mostly of interest to major distros
c21d7efc 121 - env:
8c3daf97 122 - CONFIG="--enable-modules --target-list=${MAIN_SOFTMMU_TARGETS}"
3e094234
DB
123
124
f3908ff7
AB
125 # Alternate coroutines implementations are only really of interest to KVM users
126 # However we can't test against KVM on Travis so we can only run unit tests
c21d7efc 127 - env:
f3908ff7
AB
128 - CONFIG="--with-coroutine=ucontext --disable-tcg"
129 - TEST_CMD="make check-unit -j3 V=1"
3e094234
DB
130
131
c21d7efc 132 - env:
f3908ff7
AB
133 - CONFIG="--with-coroutine=sigaltstack --disable-tcg"
134 - TEST_CMD="make check-unit -j3 V=1"
3e094234
DB
135
136
956d4506 137 # Check we can build docs and tools (out of tree)
570f3c77 138 - env:
956d4506 139 - BUILD_DIR="out-of-tree/build/dir" SRC_DIR="../../.."
570f3c77
AB
140 - BASE_CONFIG="--enable-tools --enable-docs"
141 - CONFIG="--target-list=x86_64-softmmu,aarch64-linux-user"
142 addons:
143 apt:
144 packages:
145 - python-sphinx
146 - texinfo
147 - perl
148
197be697 149
ae6d692d 150 # Test with Clang for compile portability (Travis uses clang-5.0)
c21d7efc
DB
151 - env:
152 - CONFIG="--disable-system"
ae6d692d 153 compiler: clang
197be697
DB
154
155
c21d7efc 156 - env:
8c3daf97
AB
157 - CONFIG="--disable-user --target-list=${MAIN_SOFTMMU_TARGETS}"
158 compiler: clang
159
160
7831147e
AB
161 - env:
162 - CONFIG="--target-list=${MAIN_SOFTMMU_TARGETS} "
163 compiler: clang
164 before_script:
165 - ./configure ${CONFIG} --extra-cflags="-fsanitize=undefined -Werror" || { cat config.log && exit 1; }
166
167
8c3daf97
AB
168 - env:
169 - CONFIG="--disable-user --target-list-exclude=${MAIN_SOFTMMU_TARGETS}"
d9a6b013 170 compiler: clang
197be697
DB
171
172
6c933291 173 # gprof/gcov are GCC features
c21d7efc 174 - env:
8c3daf97 175 - CONFIG="--enable-gprof --enable-gcov --disable-pie --target-list=${MAIN_SOFTMMU_TARGETS}"
0708e647
AB
176 after_success:
177 - ${SRC_DIR}/scripts/travis/coverage-summary.sh
197be697
DB
178
179
20885b5b
PB
180 # We manually include builds which we disable "make check" for
181 - env:
386dc514 182 - CONFIG="--without-default-devices --disable-user"
20885b5b
PB
183 - TEST_CMD=""
184
185
6c933291 186 # We manually include builds which we disable "make check" for
c21d7efc
DB
187 - env:
188 - CONFIG="--enable-debug --enable-tcg-interpreter"
189 - TEST_CMD=""
197be697
DB
190
191
f8309de9 192 # We don't need to exercise every backend with every front-end
c21d7efc
DB
193 - env:
194 - CONFIG="--enable-trace-backends=log,simple,syslog --disable-system"
195 - TEST_CMD=""
197be697
DB
196
197
c21d7efc
DB
198 - env:
199 - CONFIG="--enable-trace-backends=ftrace --target-list=x86_64-softmmu"
200 - TEST_CMD=""
197be697
DB
201
202
c21d7efc
DB
203 - env:
204 - CONFIG="--enable-trace-backends=ust --target-list=x86_64-softmmu"
205 - TEST_CMD=""
197be697
DB
206
207
adcf9683 208 # MacOSX builds
c21d7efc 209 - env:
8c3daf97 210 - CONFIG="--target-list=${MAIN_SOFTMMU_TARGETS}"
1d002037 211 os: osx
adcf9683
AB
212 osx_image: xcode9.4
213 compiler: clang
197be697
DB
214
215
cd7507cb
PMD
216 - env:
217 - CONFIG="--target-list=i386-softmmu,ppc-softmmu,ppc64-softmmu,m68k-softmmu,x86_64-softmmu"
218 os: osx
219 osx_image: xcode10.2
220 compiler: clang
221
222
ae6d692d 223 # Python builds
c21d7efc
DB
224 - env:
225 - CONFIG="--target-list=x86_64-softmmu"
53fefde4 226 language: python
8e73a3c5 227 python:
53fefde4 228 - "3.4"
197be697
DB
229
230
c21d7efc
DB
231 - env:
232 - CONFIG="--target-list=x86_64-softmmu"
53fefde4 233 language: python
8e73a3c5
DB
234 python:
235 - "3.6"
197be697
DB
236
237
aa983ff6 238 # Acceptance (Functional) tests
c21d7efc 239 - env:
25311649 240 - 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"
0b98c20a 241 - TEST_CMD="make check-acceptance"
c21f30eb
CR
242 after_failure:
243 - cat tests/results/latest/job.log
aa983ff6
CR
244 addons:
245 apt:
246 packages:
25311649 247 - python3-pil
aa983ff6 248 - python3-pip
95310576 249 - python3.5-venv
25311649
PMD
250 - tesseract-ocr
251 - tesseract-ocr-eng
252
253
32265288
AB
254 # Using newer GCC with sanitizers
255 - addons:
256 apt:
ac07ffc6 257 update: true
32265288
AB
258 sources:
259 # PPAs for newer toolchains
260 - ubuntu-toolchain-r-test
261 packages:
262 # Extra toolchains
3998c25e
AB
263 - gcc-9
264 - g++-9
32265288
AB
265 # Build dependencies
266 - libaio-dev
267 - libattr1-dev
268 - libbrlapi-dev
269 - libcap-ng-dev
270 - libgnutls-dev
271 - libgtk-3-dev
272 - libiscsi-dev
273 - liblttng-ust-dev
274 - libnfs-dev
275 - libncurses5-dev
276 - libnss3-dev
277 - libpixman-1-dev
278 - libpng12-dev
279 - librados-dev
280 - libsdl1.2-dev
281 - libseccomp-dev
282 - libspice-protocol-dev
283 - libspice-server-dev
b10d49d7 284 - libssh-dev
32265288
AB
285 - liburcu-dev
286 - libusb-1.0-0-dev
95310576 287 - libvte-2.91-dev
32265288
AB
288 - sparse
289 - uuid-dev
290 language: generic
291 compiler: none
292 env:
3998c25e
AB
293 - COMPILER_NAME=gcc CXX=g++-9 CC=gcc-9
294 - CONFIG="--cc=gcc-9 --cxx=g++-9 --disable-pie --disable-linux-user"
32265288
AB
295 - TEST_CMD=""
296 before_script:
3998c25e 297 - ./configure ${CONFIG} --extra-cflags="-g3 -O0 -Wno-error=stringop-truncation -fsanitize=thread -fuse-ld=gold" || { cat config.log && exit 1; }
197be697
DB
298
299
dab3a7c0 300 # Run check-tcg against linux-user
65b26da4 301 - env:
570f3c77 302 - CONFIG="--disable-system"
e2576f9b 303 - TEST_CMD="make -j3 check-tcg V=1"
dab3a7c0
AB
304
305 # Run check-tcg against softmmu targets
306 - env:
591ff1ff 307 - CONFIG="--target-list=xtensa-softmmu,arm-softmmu,aarch64-softmmu,alpha-softmmu"
dab3a7c0 308 - TEST_CMD="make -j3 check-tcg V=1"