]>
Commit | Line | Data |
---|---|---|
f2f5c3e6 PMD |
1 | include: |
2 | - local: '/.gitlab-ci.d/buildtest-template.yml' | |
3 | ||
4 | build-system-alpine: | |
5 | extends: .native_build_job_template | |
6 | needs: | |
7 | - job: amd64-alpine-container | |
8 | variables: | |
9 | IMAGE: alpine | |
10 | TARGETS: aarch64-softmmu alpha-softmmu cris-softmmu hppa-softmmu | |
11 | microblazeel-softmmu mips64el-softmmu | |
12 | MAKE_CHECK_ARGS: check-build | |
13 | CONFIGURE_ARGS: --enable-docs --enable-trace-backends=log,simple,syslog | |
14 | artifacts: | |
15 | expire_in: 2 days | |
16 | paths: | |
17 | - .git-submodule-status | |
18 | - build | |
19 | ||
20 | check-system-alpine: | |
21 | extends: .native_test_job_template | |
22 | needs: | |
23 | - job: build-system-alpine | |
24 | artifacts: true | |
25 | variables: | |
26 | IMAGE: alpine | |
27 | MAKE_CHECK_ARGS: check | |
28 | ||
29 | acceptance-system-alpine: | |
30 | extends: .acceptance_test_job_template | |
31 | needs: | |
32 | - job: build-system-alpine | |
33 | artifacts: true | |
34 | variables: | |
35 | IMAGE: alpine | |
36 | MAKE_CHECK_ARGS: check-acceptance | |
37 | ||
38 | build-system-ubuntu: | |
39 | extends: .native_build_job_template | |
40 | needs: | |
41 | job: amd64-ubuntu2004-container | |
42 | variables: | |
43 | IMAGE: ubuntu2004 | |
44 | CONFIGURE_ARGS: --enable-docs --enable-fdt=system --enable-slirp=system | |
45 | TARGETS: aarch64-softmmu alpha-softmmu cris-softmmu hppa-softmmu | |
46 | microblazeel-softmmu mips64el-softmmu | |
47 | MAKE_CHECK_ARGS: check-build | |
48 | artifacts: | |
49 | expire_in: 2 days | |
50 | paths: | |
51 | - build | |
52 | ||
53 | check-system-ubuntu: | |
54 | extends: .native_test_job_template | |
55 | needs: | |
56 | - job: build-system-ubuntu | |
57 | artifacts: true | |
58 | variables: | |
59 | IMAGE: ubuntu2004 | |
60 | MAKE_CHECK_ARGS: check | |
61 | ||
62 | acceptance-system-ubuntu: | |
63 | extends: .acceptance_test_job_template | |
64 | needs: | |
65 | - job: build-system-ubuntu | |
66 | artifacts: true | |
67 | variables: | |
68 | IMAGE: ubuntu2004 | |
69 | MAKE_CHECK_ARGS: check-acceptance | |
70 | ||
71 | build-system-debian: | |
72 | extends: .native_build_job_template | |
73 | needs: | |
74 | job: amd64-debian-container | |
75 | variables: | |
76 | IMAGE: debian-amd64 | |
77 | CONFIGURE_ARGS: --enable-fdt=system | |
78 | TARGETS: arm-softmmu avr-softmmu i386-softmmu mipsel-softmmu | |
79 | riscv64-softmmu sh4eb-softmmu sparc-softmmu xtensaeb-softmmu | |
80 | MAKE_CHECK_ARGS: check-build | |
81 | artifacts: | |
82 | expire_in: 2 days | |
83 | paths: | |
84 | - build | |
85 | ||
86 | check-system-debian: | |
87 | extends: .native_test_job_template | |
88 | needs: | |
89 | - job: build-system-debian | |
90 | artifacts: true | |
91 | variables: | |
92 | IMAGE: debian-amd64 | |
93 | MAKE_CHECK_ARGS: check | |
94 | ||
95 | acceptance-system-debian: | |
96 | extends: .acceptance_test_job_template | |
97 | needs: | |
98 | - job: build-system-debian | |
99 | artifacts: true | |
100 | variables: | |
101 | IMAGE: debian-amd64 | |
102 | MAKE_CHECK_ARGS: check-acceptance | |
103 | ||
104 | build-system-fedora: | |
105 | extends: .native_build_job_template | |
106 | needs: | |
107 | job: amd64-fedora-container | |
108 | variables: | |
109 | IMAGE: fedora | |
110 | CONFIGURE_ARGS: --disable-gcrypt --enable-nettle --enable-docs | |
111 | --enable-fdt=system --enable-slirp=system --enable-capstone=system | |
112 | TARGETS: tricore-softmmu microblaze-softmmu mips-softmmu | |
113 | xtensa-softmmu m68k-softmmu riscv32-softmmu ppc-softmmu sparc64-softmmu | |
114 | MAKE_CHECK_ARGS: check-build | |
115 | artifacts: | |
116 | expire_in: 2 days | |
117 | paths: | |
118 | - build | |
119 | ||
120 | check-system-fedora: | |
121 | extends: .native_test_job_template | |
122 | needs: | |
123 | - job: build-system-fedora | |
124 | artifacts: true | |
125 | variables: | |
126 | IMAGE: fedora | |
127 | MAKE_CHECK_ARGS: check | |
128 | ||
129 | acceptance-system-fedora: | |
130 | extends: .acceptance_test_job_template | |
131 | needs: | |
132 | - job: build-system-fedora | |
133 | artifacts: true | |
134 | variables: | |
135 | IMAGE: fedora | |
136 | MAKE_CHECK_ARGS: check-acceptance | |
137 | ||
138 | build-system-centos: | |
139 | extends: .native_build_job_template | |
140 | needs: | |
141 | job: amd64-centos8-container | |
142 | variables: | |
143 | IMAGE: centos8 | |
144 | CONFIGURE_ARGS: --disable-nettle --enable-gcrypt --enable-fdt=system | |
145 | --enable-modules --enable-trace-backends=dtrace | |
146 | TARGETS: ppc64-softmmu or1k-softmmu s390x-softmmu | |
147 | x86_64-softmmu rx-softmmu sh4-softmmu nios2-softmmu | |
148 | MAKE_CHECK_ARGS: check-build | |
149 | artifacts: | |
150 | expire_in: 2 days | |
151 | paths: | |
152 | - build | |
153 | ||
154 | check-system-centos: | |
155 | extends: .native_test_job_template | |
156 | needs: | |
157 | - job: build-system-centos | |
158 | artifacts: true | |
159 | variables: | |
160 | IMAGE: centos8 | |
161 | MAKE_CHECK_ARGS: check | |
162 | ||
163 | acceptance-system-centos: | |
164 | extends: .acceptance_test_job_template | |
165 | needs: | |
166 | - job: build-system-centos | |
167 | artifacts: true | |
168 | variables: | |
169 | IMAGE: centos8 | |
170 | MAKE_CHECK_ARGS: check-acceptance | |
171 | ||
172 | build-system-opensuse: | |
173 | extends: .native_build_job_template | |
174 | needs: | |
175 | job: amd64-opensuse-leap-container | |
176 | variables: | |
177 | IMAGE: opensuse-leap | |
178 | CONFIGURE_ARGS: --enable-fdt=system | |
179 | TARGETS: s390x-softmmu x86_64-softmmu aarch64-softmmu | |
180 | MAKE_CHECK_ARGS: check-build | |
181 | artifacts: | |
182 | expire_in: 2 days | |
183 | paths: | |
184 | - build | |
185 | ||
186 | check-system-opensuse: | |
187 | extends: .native_test_job_template | |
188 | needs: | |
189 | - job: build-system-opensuse | |
190 | artifacts: true | |
191 | variables: | |
192 | IMAGE: opensuse-leap | |
193 | MAKE_CHECK_ARGS: check | |
194 | ||
195 | acceptance-system-opensuse: | |
196 | extends: .acceptance_test_job_template | |
197 | needs: | |
198 | - job: build-system-opensuse | |
199 | artifacts: true | |
200 | variables: | |
201 | IMAGE: opensuse-leap | |
202 | MAKE_CHECK_ARGS: check-acceptance | |
203 | ||
204 | ||
205 | build-disabled: | |
206 | extends: .native_build_job_template | |
207 | needs: | |
208 | job: amd64-fedora-container | |
209 | variables: | |
210 | IMAGE: fedora | |
211 | CONFIGURE_ARGS: | |
212 | --disable-attr | |
213 | --disable-auth-pam | |
214 | --disable-avx2 | |
215 | --disable-bochs | |
216 | --disable-brlapi | |
217 | --disable-bzip2 | |
218 | --disable-cap-ng | |
219 | --disable-capstone | |
220 | --disable-cloop | |
221 | --disable-coroutine-pool | |
222 | --disable-curl | |
223 | --disable-curses | |
224 | --disable-dmg | |
225 | --disable-docs | |
226 | --disable-gcrypt | |
227 | --disable-glusterfs | |
228 | --disable-gnutls | |
229 | --disable-gtk | |
230 | --disable-guest-agent | |
231 | --disable-iconv | |
232 | --disable-keyring | |
233 | --disable-kvm | |
234 | --disable-libiscsi | |
235 | --disable-libpmem | |
236 | --disable-libssh | |
237 | --disable-libudev | |
238 | --disable-libusb | |
239 | --disable-libxml2 | |
240 | --disable-linux-aio | |
241 | --disable-live-block-migration | |
242 | --disable-lzo | |
243 | --disable-malloc-trim | |
244 | --disable-mpath | |
245 | --disable-nettle | |
246 | --disable-numa | |
247 | --disable-opengl | |
248 | --disable-parallels | |
249 | --disable-pie | |
250 | --disable-qcow1 | |
251 | --disable-qed | |
252 | --disable-qom-cast-debug | |
253 | --disable-rbd | |
254 | --disable-rdma | |
255 | --disable-replication | |
256 | --disable-sdl | |
257 | --disable-seccomp | |
258 | --disable-slirp | |
259 | --disable-smartcard | |
260 | --disable-snappy | |
261 | --disable-sparse | |
262 | --disable-spice | |
263 | --disable-strip | |
264 | --disable-tpm | |
265 | --disable-usb-redir | |
266 | --disable-vdi | |
267 | --disable-vhost-crypto | |
268 | --disable-vhost-net | |
269 | --disable-vhost-scsi | |
270 | --disable-vhost-kernel | |
271 | --disable-vhost-user | |
272 | --disable-vhost-vdpa | |
273 | --disable-vhost-vsock | |
274 | --disable-virglrenderer | |
275 | --disable-vnc | |
276 | --disable-vte | |
277 | --disable-vvfat | |
278 | --disable-xen | |
279 | --disable-zstd | |
280 | TARGETS: arm-softmmu i386-softmmu ppc64-softmmu mips64-softmmu | |
281 | s390x-softmmu i386-linux-user | |
282 | MAKE_CHECK_ARGS: check-qtest SPEED=slow | |
283 | ||
284 | # This jobs explicitly disable TCG (--disable-tcg), KVM is detected by | |
285 | # the configure script. The container doesn't contain Xen headers so | |
286 | # Xen accelerator is not detected / selected. As result it build the | |
287 | # i386-softmmu and x86_64-softmmu with KVM being the single accelerator | |
288 | # available. | |
289 | # Also use a different coroutine implementation (which is only really of | |
290 | # interest to KVM users, i.e. with TCG disabled) | |
291 | build-tcg-disabled: | |
292 | extends: .native_build_job_template | |
293 | needs: | |
294 | job: amd64-centos8-container | |
295 | variables: | |
296 | IMAGE: centos8 | |
297 | script: | |
298 | - mkdir build | |
299 | - cd build | |
300 | - ../configure --disable-tcg --audio-drv-list="" --with-coroutine=ucontext | |
301 | || { cat config.log meson-logs/meson-log.txt && exit 1; } | |
302 | - make -j"$JOBS" | |
303 | - make check-unit | |
304 | - make check-qapi-schema | |
305 | - cd tests/qemu-iotests/ | |
306 | - ./check -raw 001 002 003 004 005 008 009 010 011 012 021 025 032 033 048 | |
307 | 052 063 077 086 101 104 106 113 148 150 151 152 157 159 160 163 | |
308 | 170 171 183 184 192 194 197 208 215 221 222 226 227 236 253 277 | |
309 | - ./check -qcow2 028 051 056 057 058 065 068 082 085 091 095 096 102 122 | |
310 | 124 132 139 142 144 145 151 152 155 157 165 194 196 197 200 202 | |
311 | 208 209 215 216 218 222 227 234 246 247 248 250 254 255 257 258 | |
312 | 260 261 262 263 264 270 272 273 277 279 | |
313 | ||
314 | build-user: | |
315 | extends: .native_build_job_template | |
316 | needs: | |
317 | job: amd64-debian-user-cross-container | |
318 | variables: | |
319 | IMAGE: debian-all-test-cross | |
320 | CONFIGURE_ARGS: --disable-tools --disable-system | |
321 | MAKE_CHECK_ARGS: check-tcg | |
322 | ||
323 | build-user-static: | |
324 | extends: .native_build_job_template | |
325 | needs: | |
326 | job: amd64-debian-user-cross-container | |
327 | variables: | |
328 | IMAGE: debian-all-test-cross | |
329 | CONFIGURE_ARGS: --disable-tools --disable-system --static | |
330 | MAKE_CHECK_ARGS: check-tcg | |
331 | ||
332 | # Because the hexagon cross-compiler takes so long to build we don't rely | |
333 | # on the CI system to build it and hence this job has an optional dependency | |
334 | # declared. The image is manually uploaded. | |
335 | build-user-hexagon: | |
336 | extends: .native_build_job_template | |
337 | needs: | |
338 | job: hexagon-cross-container | |
339 | optional: true | |
340 | variables: | |
341 | IMAGE: debian-hexagon-cross | |
342 | TARGETS: hexagon-linux-user | |
343 | CONFIGURE_ARGS: --disable-tools --disable-docs --enable-debug-tcg | |
344 | MAKE_CHECK_ARGS: check-tcg | |
345 | ||
346 | # Only build the softmmu targets we have check-tcg tests for | |
347 | build-some-softmmu: | |
348 | extends: .native_build_job_template | |
349 | needs: | |
350 | job: amd64-debian-user-cross-container | |
351 | variables: | |
352 | IMAGE: debian-all-test-cross | |
353 | CONFIGURE_ARGS: --disable-tools --enable-debug | |
354 | TARGETS: xtensa-softmmu arm-softmmu aarch64-softmmu alpha-softmmu | |
355 | MAKE_CHECK_ARGS: check-tcg | |
356 | ||
357 | # Run check-tcg against linux-user (with plugins) | |
358 | # we skip sparc64-linux-user until it has been fixed somewhat | |
359 | # we skip cris-linux-user as it doesn't use the common run loop | |
360 | build-user-plugins: | |
361 | extends: .native_build_job_template | |
362 | needs: | |
363 | job: amd64-debian-user-cross-container | |
364 | variables: | |
365 | IMAGE: debian-all-test-cross | |
366 | CONFIGURE_ARGS: --disable-tools --disable-system --enable-plugins --enable-debug-tcg --target-list-exclude=sparc64-linux-user,cris-linux-user | |
367 | MAKE_CHECK_ARGS: check-tcg | |
368 | timeout: 1h 30m | |
369 | ||
370 | build-some-softmmu-plugins: | |
371 | extends: .native_build_job_template | |
372 | needs: | |
373 | job: amd64-debian-user-cross-container | |
374 | variables: | |
375 | IMAGE: debian-all-test-cross | |
376 | CONFIGURE_ARGS: --disable-tools --disable-user --enable-plugins --enable-debug-tcg | |
377 | TARGETS: xtensa-softmmu arm-softmmu aarch64-softmmu alpha-softmmu | |
378 | MAKE_CHECK_ARGS: check-tcg | |
379 | ||
380 | clang-system: | |
381 | extends: .native_build_job_template | |
382 | needs: | |
383 | job: amd64-fedora-container | |
384 | variables: | |
385 | IMAGE: fedora | |
386 | CONFIGURE_ARGS: --cc=clang --cxx=clang++ | |
387 | --extra-cflags=-fsanitize=undefined --extra-cflags=-fno-sanitize-recover=undefined | |
388 | TARGETS: alpha-softmmu arm-softmmu m68k-softmmu mips64-softmmu | |
389 | ppc-softmmu s390x-softmmu | |
390 | MAKE_CHECK_ARGS: check-qtest check-tcg | |
391 | ||
392 | clang-user: | |
393 | extends: .native_build_job_template | |
394 | needs: | |
395 | job: amd64-debian-user-cross-container | |
396 | variables: | |
397 | IMAGE: debian-all-test-cross | |
398 | CONFIGURE_ARGS: --cc=clang --cxx=clang++ --disable-system | |
399 | --target-list-exclude=microblazeel-linux-user,aarch64_be-linux-user,i386-linux-user,m68k-linux-user,mipsn32el-linux-user,xtensaeb-linux-user | |
400 | --extra-cflags=-fsanitize=undefined --extra-cflags=-fno-sanitize-recover=undefined | |
401 | MAKE_CHECK_ARGS: check-unit check-tcg | |
402 | ||
403 | # Set LD_JOBS=1 because this requires LTO and ld consumes a large amount of memory. | |
404 | # On gitlab runners, default value sometimes end up calling 2 lds concurrently and | |
405 | # triggers an Out-Of-Memory error | |
406 | # | |
407 | # Since slirp callbacks are used in QEMU Timers, slirp needs to be compiled together | |
408 | # with QEMU and linked as a static library to avoid false positives in CFI checks. | |
409 | # This can be accomplished by using -enable-slirp=git, which avoids the use of | |
410 | # a system-wide version of the library | |
411 | # | |
412 | # Split in three sets of build/check/acceptance to limit the execution time of each | |
413 | # job | |
414 | build-cfi-aarch64: | |
415 | extends: .native_build_job_template | |
416 | needs: | |
417 | - job: amd64-fedora-container | |
418 | variables: | |
419 | LD_JOBS: 1 | |
420 | AR: llvm-ar | |
421 | IMAGE: fedora | |
422 | CONFIGURE_ARGS: --cc=clang --cxx=clang++ --enable-cfi --enable-cfi-debug | |
423 | --enable-safe-stack --enable-slirp=git | |
424 | TARGETS: aarch64-softmmu | |
425 | MAKE_CHECK_ARGS: check-build | |
426 | timeout: 70m | |
427 | artifacts: | |
428 | expire_in: 2 days | |
429 | paths: | |
430 | - build | |
431 | ||
432 | check-cfi-aarch64: | |
433 | extends: .native_test_job_template | |
434 | needs: | |
435 | - job: build-cfi-aarch64 | |
436 | artifacts: true | |
437 | variables: | |
438 | IMAGE: fedora | |
439 | MAKE_CHECK_ARGS: check | |
440 | ||
441 | acceptance-cfi-aarch64: | |
442 | extends: .acceptance_test_job_template | |
443 | needs: | |
444 | - job: build-cfi-aarch64 | |
445 | artifacts: true | |
446 | variables: | |
447 | IMAGE: fedora | |
448 | MAKE_CHECK_ARGS: check-acceptance | |
449 | ||
450 | build-cfi-ppc64-s390x: | |
451 | extends: .native_build_job_template | |
452 | needs: | |
453 | - job: amd64-fedora-container | |
454 | variables: | |
455 | LD_JOBS: 1 | |
456 | AR: llvm-ar | |
457 | IMAGE: fedora | |
458 | CONFIGURE_ARGS: --cc=clang --cxx=clang++ --enable-cfi --enable-cfi-debug | |
459 | --enable-safe-stack --enable-slirp=git | |
460 | TARGETS: ppc64-softmmu s390x-softmmu | |
461 | MAKE_CHECK_ARGS: check-build | |
462 | timeout: 70m | |
463 | artifacts: | |
464 | expire_in: 2 days | |
465 | paths: | |
466 | - build | |
467 | ||
468 | check-cfi-ppc64-s390x: | |
469 | extends: .native_test_job_template | |
470 | needs: | |
471 | - job: build-cfi-ppc64-s390x | |
472 | artifacts: true | |
473 | variables: | |
474 | IMAGE: fedora | |
475 | MAKE_CHECK_ARGS: check | |
476 | ||
477 | acceptance-cfi-ppc64-s390x: | |
478 | extends: .acceptance_test_job_template | |
479 | needs: | |
480 | - job: build-cfi-ppc64-s390x | |
481 | artifacts: true | |
482 | variables: | |
483 | IMAGE: fedora | |
484 | MAKE_CHECK_ARGS: check-acceptance | |
485 | ||
486 | build-cfi-x86_64: | |
487 | extends: .native_build_job_template | |
488 | needs: | |
489 | - job: amd64-fedora-container | |
490 | variables: | |
491 | LD_JOBS: 1 | |
492 | AR: llvm-ar | |
493 | IMAGE: fedora | |
494 | CONFIGURE_ARGS: --cc=clang --cxx=clang++ --enable-cfi --enable-cfi-debug | |
495 | --enable-safe-stack --enable-slirp=git | |
496 | TARGETS: x86_64-softmmu | |
497 | MAKE_CHECK_ARGS: check-build | |
498 | timeout: 70m | |
499 | artifacts: | |
500 | expire_in: 2 days | |
501 | paths: | |
502 | - build | |
503 | ||
504 | check-cfi-x86_64: | |
505 | extends: .native_test_job_template | |
506 | needs: | |
507 | - job: build-cfi-x86_64 | |
508 | artifacts: true | |
509 | variables: | |
510 | IMAGE: fedora | |
511 | MAKE_CHECK_ARGS: check | |
512 | ||
513 | acceptance-cfi-x86_64: | |
514 | extends: .acceptance_test_job_template | |
515 | needs: | |
516 | - job: build-cfi-x86_64 | |
517 | artifacts: true | |
518 | variables: | |
519 | IMAGE: fedora | |
520 | MAKE_CHECK_ARGS: check-acceptance | |
521 | ||
522 | tsan-build: | |
523 | extends: .native_build_job_template | |
524 | needs: | |
525 | job: amd64-ubuntu2004-container | |
526 | variables: | |
527 | IMAGE: ubuntu2004 | |
528 | CONFIGURE_ARGS: --enable-tsan --cc=clang-10 --cxx=clang++-10 | |
529 | --enable-trace-backends=ust --enable-fdt=system --enable-slirp=system | |
530 | TARGETS: x86_64-softmmu ppc64-softmmu riscv64-softmmu x86_64-linux-user | |
531 | MAKE_CHECK_ARGS: bench V=1 | |
532 | ||
533 | # These targets are on the way out | |
534 | build-deprecated: | |
535 | extends: .native_build_job_template | |
536 | needs: | |
537 | job: amd64-debian-user-cross-container | |
538 | variables: | |
539 | IMAGE: debian-all-test-cross | |
540 | CONFIGURE_ARGS: --disable-tools | |
541 | MAKE_CHECK_ARGS: build-tcg | |
542 | TARGETS: ppc64abi32-linux-user | |
543 | artifacts: | |
544 | expire_in: 2 days | |
545 | paths: | |
546 | - build | |
547 | ||
548 | # We split the check-tcg step as test failures are expected but we still | |
549 | # want to catch the build breaking. | |
550 | check-deprecated: | |
551 | extends: .native_test_job_template | |
552 | needs: | |
553 | - job: build-deprecated | |
554 | artifacts: true | |
555 | variables: | |
556 | IMAGE: debian-all-test-cross | |
557 | MAKE_CHECK_ARGS: check-tcg | |
558 | allow_failure: true | |
559 | ||
560 | # gprof/gcov are GCC features | |
561 | gprof-gcov: | |
562 | extends: .native_build_job_template | |
563 | needs: | |
564 | job: amd64-ubuntu2004-container | |
565 | variables: | |
566 | IMAGE: ubuntu2004 | |
567 | CONFIGURE_ARGS: --enable-gprof --enable-gcov | |
568 | MAKE_CHECK_ARGS: check | |
569 | TARGETS: aarch64-softmmu ppc64-softmmu s390x-softmmu x86_64-softmmu | |
570 | timeout: 70m | |
571 | after_script: | |
572 | - ${CI_PROJECT_DIR}/scripts/ci/coverage-summary.sh | |
573 | ||
574 | build-oss-fuzz: | |
575 | extends: .native_build_job_template | |
576 | needs: | |
577 | job: amd64-fedora-container | |
578 | variables: | |
579 | IMAGE: fedora | |
580 | script: | |
581 | - mkdir build-oss-fuzz | |
582 | - CC="clang" CXX="clang++" CFLAGS="-fsanitize=address" | |
583 | ./scripts/oss-fuzz/build.sh | |
584 | - export ASAN_OPTIONS="fast_unwind_on_malloc=0" | |
585 | - for fuzzer in $(find ./build-oss-fuzz/DEST_DIR/ -executable -type f | |
586 | | grep -v slirp); do | |
587 | grep "LLVMFuzzerTestOneInput" ${fuzzer} > /dev/null 2>&1 || continue ; | |
588 | echo Testing ${fuzzer} ... ; | |
589 | "${fuzzer}" -runs=1 -seed=1 || exit 1 ; | |
590 | done | |
591 | # Unrelated to fuzzer: run some tests with -fsanitize=address | |
592 | - cd build-oss-fuzz && make check-qtest-i386 check-unit | |
593 | ||
594 | build-tci: | |
595 | extends: .native_build_job_template | |
596 | needs: | |
597 | job: amd64-debian-user-cross-container | |
598 | variables: | |
599 | IMAGE: debian-all-test-cross | |
600 | script: | |
601 | - TARGETS="aarch64 alpha arm hppa m68k microblaze ppc64 s390x x86_64" | |
602 | - mkdir build | |
603 | - cd build | |
604 | - ../configure --enable-tcg-interpreter | |
605 | --target-list="$(for tg in $TARGETS; do echo -n ${tg}'-softmmu '; done)" || { cat config.log meson-logs/meson-log.txt && exit 1; } | |
606 | - make -j"$JOBS" | |
607 | - make tests/qtest/boot-serial-test tests/qtest/cdrom-test tests/qtest/pxe-test | |
608 | - for tg in $TARGETS ; do | |
609 | export QTEST_QEMU_BINARY="./qemu-system-${tg}" ; | |
610 | ./tests/qtest/boot-serial-test || exit 1 ; | |
611 | ./tests/qtest/cdrom-test || exit 1 ; | |
612 | done | |
613 | - QTEST_QEMU_BINARY="./qemu-system-x86_64" ./tests/qtest/pxe-test | |
614 | - QTEST_QEMU_BINARY="./qemu-system-s390x" ./tests/qtest/pxe-test -m slow | |
615 | - make check-tcg | |
616 | ||
617 | # Alternate coroutines implementations are only really of interest to KVM users | |
618 | # However we can't test against KVM on Gitlab-CI so we can only run unit tests | |
619 | build-coroutine-sigaltstack: | |
620 | extends: .native_build_job_template | |
621 | needs: | |
622 | job: amd64-ubuntu2004-container | |
623 | variables: | |
624 | IMAGE: ubuntu2004 | |
625 | CONFIGURE_ARGS: --with-coroutine=sigaltstack --disable-tcg | |
626 | --enable-trace-backends=ftrace | |
627 | MAKE_CHECK_ARGS: check-unit | |
628 | ||
629 | # Most jobs test latest gcrypt or nettle builds | |
630 | # | |
631 | # These jobs test old gcrypt and nettle from RHEL7 | |
632 | # which had some API differences. | |
633 | crypto-old-nettle: | |
634 | extends: .native_build_job_template | |
635 | needs: | |
636 | job: amd64-centos7-container | |
637 | variables: | |
638 | IMAGE: centos7 | |
639 | TARGETS: x86_64-softmmu x86_64-linux-user | |
640 | CONFIGURE_ARGS: --disable-gcrypt --enable-nettle | |
641 | MAKE_CHECK_ARGS: check | |
642 | ||
643 | crypto-old-gcrypt: | |
644 | extends: .native_build_job_template | |
645 | needs: | |
646 | job: amd64-centos7-container | |
647 | variables: | |
648 | IMAGE: centos7 | |
649 | TARGETS: x86_64-softmmu x86_64-linux-user | |
650 | CONFIGURE_ARGS: --disable-nettle --enable-gcrypt | |
651 | MAKE_CHECK_ARGS: check | |
652 | ||
653 | crypto-only-gnutls: | |
654 | extends: .native_build_job_template | |
655 | needs: | |
656 | job: amd64-centos7-container | |
657 | variables: | |
658 | IMAGE: centos7 | |
659 | TARGETS: x86_64-softmmu x86_64-linux-user | |
660 | CONFIGURE_ARGS: --disable-nettle --disable-gcrypt --enable-gnutls | |
661 | MAKE_CHECK_ARGS: check | |
662 | ||
663 | ||
664 | # Check our reduced build configurations | |
665 | build-without-default-devices: | |
666 | extends: .native_build_job_template | |
667 | needs: | |
668 | job: amd64-centos8-container | |
669 | variables: | |
670 | IMAGE: centos8 | |
671 | CONFIGURE_ARGS: --without-default-devices --disable-user | |
672 | ||
673 | build-without-default-features: | |
674 | extends: .native_build_job_template | |
675 | needs: | |
676 | job: amd64-debian-container | |
677 | variables: | |
678 | IMAGE: debian-amd64 | |
679 | CONFIGURE_ARGS: --without-default-features --disable-user | |
680 | --target-list-exclude=arm-softmmu,i386-softmmu,mipsel-softmmu,mips64-softmmu,ppc-softmmu | |
681 | MAKE_CHECK_ARGS: check-unit | |
682 | ||
683 | build-libvhost-user: | |
684 | stage: build | |
685 | image: $CI_REGISTRY_IMAGE/qemu/fedora:latest | |
686 | needs: | |
687 | job: amd64-fedora-container | |
688 | before_script: | |
689 | - dnf install -y meson ninja-build | |
690 | script: | |
691 | - mkdir subprojects/libvhost-user/build | |
692 | - cd subprojects/libvhost-user/build | |
693 | - meson | |
694 | - ninja | |
695 | ||
696 | # No targets are built here, just tools, docs, and unit tests. This | |
697 | # also feeds into the eventual documentation deployment steps later | |
698 | build-tools-and-docs-debian: | |
699 | extends: .native_build_job_template | |
700 | needs: | |
701 | job: amd64-debian-container | |
702 | variables: | |
703 | IMAGE: debian-amd64 | |
704 | MAKE_CHECK_ARGS: check-unit check-softfloat ctags TAGS cscope | |
705 | CONFIGURE_ARGS: --disable-system --disable-user --enable-docs --enable-tools | |
706 | artifacts: | |
707 | expire_in: 2 days | |
708 | paths: | |
709 | - build | |
710 | ||
711 | # Prepare for GitLab pages deployment. Anything copied into the | |
712 | # "public" directory will be deployed to $USER.gitlab.io/$PROJECT | |
713 | pages: | |
714 | image: $CI_REGISTRY_IMAGE/qemu/debian-amd64:latest | |
715 | stage: test | |
716 | needs: | |
717 | - job: build-tools-and-docs-debian | |
718 | script: | |
719 | - mkdir -p public | |
720 | # HTML-ised source tree | |
721 | - make gtags | |
722 | - htags -anT --tree-view=filetree -m qemu_init | |
723 | -t "Welcome to the QEMU sourcecode" | |
724 | - mv HTML public/src | |
725 | # Project documentation | |
726 | - make -C build install DESTDIR=$(pwd)/temp-install | |
727 | - mv temp-install/usr/local/share/doc/qemu/* public/ | |
728 | artifacts: | |
729 | paths: | |
730 | - public |