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