]> git.proxmox.com Git - mirror_qemu.git/blame - .gitlab-ci.yml
cpu: Move synchronize_from_tb() to tcg_ops
[mirror_qemu.git] / .gitlab-ci.yml
CommitLineData
c5008c76
AB
1# Currently we have two build stages after our containers are built:
2# - build (for traditional build and test or first stage build)
3# - test (for test stages, using build artefacts from a build stage)
d0caa0a8
DB
4stages:
5 - containers
fa821f23 6 - containers-layer2
d0caa0a8 7 - build
c5008c76 8 - test
d0caa0a8 9
71920809 10include:
922febe2
TH
11 - local: '/.gitlab-ci.d/edk2.yml'
12 - local: '/.gitlab-ci.d/opensbi.yml'
fa821f23 13 - local: '/.gitlab-ci.d/containers.yml'
6bcb5fc0 14 - local: '/.gitlab-ci.d/crossbuilds.yml'
71920809 15
c962864f
DB
16.native_build_job_template: &native_build_job_definition
17 stage: build
18 image: $CI_REGISTRY_IMAGE/qemu/$IMAGE:latest
19 before_script:
20 - JOBS=$(expr $(nproc) + 1)
8d77ce1d 21 - sed -i s,git.qemu.org/git,gitlab.com/qemu-project, .gitmodules
c962864f
DB
22 script:
23 - mkdir build
24 - cd build
25 - if test -n "$TARGETS";
26 then
27 ../configure --enable-werror $CONFIGURE_ARGS --target-list="$TARGETS" ;
28 else
29 ../configure --enable-werror $CONFIGURE_ARGS ;
c47110d9 30 fi || { cat config.log meson-logs/meson-log.txt && exit 1; }
c962864f 31 - make -j"$JOBS"
c5008c76
AB
32 - if test -n "$MAKE_CHECK_ARGS";
33 then
a6eeac3b 34 make -j"$JOBS" $MAKE_CHECK_ARGS ;
c5008c76
AB
35 fi
36
37.native_test_job_template: &native_test_job_definition
38 stage: test
39 image: $CI_REGISTRY_IMAGE/qemu/$IMAGE:latest
40 script:
12a917a1
TH
41 - scripts/git-submodule.sh update
42 $(grep GIT_SUBMODULES build/config-host.mak | sed 's/GIT_SUBMODULES=//')
c5008c76
AB
43 - cd build
44 - find . -type f -exec touch {} +
12a917a1
TH
45 # Avoid recompiling by hiding ninja with NINJA=":"
46 - make NINJA=":" $MAKE_CHECK_ARGS
c5008c76 47
5896c539
TH
48.acceptance_template: &acceptance_definition
49 cache:
50 key: "${CI_JOB_NAME}-cache"
51 paths:
52 - ${CI_PROJECT_DIR}/avocado-cache
53 policy: pull-push
ec4d2feb 54 artifacts:
df063546
WSM
55 name: "$CI_JOB_NAME-$CI_COMMIT_REF_SLUG"
56 when: always
57 expire_in: 2 days
ec4d2feb
CR
58 paths:
59 - build/tests/results/latest/results.xml
df063546 60 - build/tests/results/latest/test-results
ec4d2feb
CR
61 reports:
62 junit: build/tests/results/latest/results.xml
5896c539
TH
63 before_script:
64 - mkdir -p ~/.config/avocado
65 - echo "[datadir.paths]" > ~/.config/avocado/avocado.conf
66 - echo "cache_dirs = ['${CI_PROJECT_DIR}/avocado-cache']"
67 >> ~/.config/avocado/avocado.conf
ba2232ba
WSM
68 - echo -e '[job.output.testlogs]\nstatuses = ["FAIL"]'
69 >> ~/.config/avocado/avocado.conf
5896c539
TH
70 - if [ -d ${CI_PROJECT_DIR}/avocado-cache ]; then
71 du -chs ${CI_PROJECT_DIR}/avocado-cache ;
72 fi
67202bae 73 - export AVOCADO_ALLOW_UNTRUSTED_CODE=1
c5008c76
AB
74 after_script:
75 - cd build
5896c539 76 - du -chs ${CI_PROJECT_DIR}/avocado-cache
0a8b05c7 77
b22786ea
JY
78build-system-alpine:
79 <<: *native_build_job_definition
80 variables:
81 IMAGE: alpine
82 TARGETS: aarch64-softmmu alpha-softmmu cris-softmmu hppa-softmmu
83 moxie-softmmu microblazeel-softmmu mips64el-softmmu
84 MAKE_CHECK_ARGS: check-build
85 CONFIGURE_ARGS: --enable-docs
86 artifacts:
87 expire_in: 2 days
88 paths:
89 - .git-submodule-status
90 - build
91
92check-system-alpine:
93 <<: *native_test_job_definition
94 needs:
95 - job: build-system-alpine
96 artifacts: true
97 variables:
98 IMAGE: alpine
99 MAKE_CHECK_ARGS: check
100
101acceptance-system-alpine:
102 <<: *native_test_job_definition
103 needs:
104 - job: build-system-alpine
105 artifacts: true
106 variables:
107 IMAGE: alpine
108 MAKE_CHECK_ARGS: check-acceptance
109 <<: *acceptance_definition
110
699616db 111build-system-ubuntu:
c962864f
DB
112 <<: *native_build_job_definition
113 variables:
114 IMAGE: ubuntu2004
db0108d5 115 CONFIGURE_ARGS: --enable-fdt=system --enable-slirp=system
699616db
TH
116 TARGETS: aarch64-softmmu alpha-softmmu cris-softmmu hppa-softmmu
117 moxie-softmmu microblazeel-softmmu mips64el-softmmu
a6eeac3b 118 MAKE_CHECK_ARGS: check-build
c5008c76 119 artifacts:
0a796d63 120 expire_in: 2 days
c5008c76
AB
121 paths:
122 - build
123
699616db 124check-system-ubuntu:
c5008c76
AB
125 <<: *native_test_job_definition
126 needs:
699616db 127 - job: build-system-ubuntu
c5008c76
AB
128 artifacts: true
129 variables:
130 IMAGE: ubuntu2004
c962864f 131 MAKE_CHECK_ARGS: check
0a8b05c7 132
699616db 133acceptance-system-ubuntu:
c5008c76
AB
134 <<: *native_test_job_definition
135 needs:
699616db 136 - job: build-system-ubuntu
c5008c76
AB
137 artifacts: true
138 variables:
139 IMAGE: ubuntu2004
140 MAKE_CHECK_ARGS: check-acceptance
5896c539 141 <<: *acceptance_definition
c5008c76 142
699616db
TH
143build-system-debian:
144 <<: *native_build_job_definition
145 variables:
146 IMAGE: debian-amd64
db0108d5 147 CONFIGURE_ARGS: --enable-fdt=system
699616db
TH
148 TARGETS: arm-softmmu avr-softmmu i386-softmmu mipsel-softmmu
149 riscv64-softmmu sh4eb-softmmu sparc-softmmu xtensaeb-softmmu
150 MAKE_CHECK_ARGS: check-build
151 artifacts:
0a796d63 152 expire_in: 2 days
699616db
TH
153 paths:
154 - build
155
156check-system-debian:
157 <<: *native_test_job_definition
158 needs:
159 - job: build-system-debian
160 artifacts: true
161 variables:
162 IMAGE: debian-amd64
163 MAKE_CHECK_ARGS: check
164
22250a6e
AB
165# No targets are built here, just tools, docs, and unit tests. This
166# also feeds into the eventual documentation deployment steps later
a8a3abe0
AB
167build-tools-and-docs-debian:
168 <<: *native_build_job_definition
169 variables:
170 IMAGE: debian-amd64
22250a6e 171 MAKE_CHECK_ARGS: check-unit check-softfloat ctags TAGS cscope
a8a3abe0
AB
172 CONFIGURE_ARGS: --disable-system --disable-user --enable-docs --enable-tools
173 artifacts:
174 expire_in: 2 days
175 paths:
176 - build
177
699616db
TH
178acceptance-system-debian:
179 <<: *native_test_job_definition
180 needs:
181 - job: build-system-debian
182 artifacts: true
183 variables:
184 IMAGE: debian-amd64
185 MAKE_CHECK_ARGS: check-acceptance
5896c539 186 <<: *acceptance_definition
699616db
TH
187
188build-system-fedora:
c962864f
DB
189 <<: *native_build_job_definition
190 variables:
191 IMAGE: fedora
d0f26e68 192 CONFIGURE_ARGS: --disable-gcrypt --enable-nettle --enable-docs
db0108d5 193 --enable-fdt=system --enable-slirp=system --enable-capstone=system
3ffc7f01 194 TARGETS: tricore-softmmu microblaze-softmmu mips-softmmu
699616db 195 xtensa-softmmu m68k-softmmu riscv32-softmmu ppc-softmmu sparc64-softmmu
a6eeac3b 196 MAKE_CHECK_ARGS: check-build
c5008c76 197 artifacts:
0a796d63 198 expire_in: 2 days
c5008c76
AB
199 paths:
200 - build
201
699616db 202check-system-fedora:
c5008c76
AB
203 <<: *native_test_job_definition
204 needs:
699616db 205 - job: build-system-fedora
c5008c76
AB
206 artifacts: true
207 variables:
208 IMAGE: fedora
c962864f 209 MAKE_CHECK_ARGS: check
0a8b05c7 210
699616db 211acceptance-system-fedora:
c5008c76
AB
212 <<: *native_test_job_definition
213 needs:
699616db 214 - job: build-system-fedora
c5008c76
AB
215 artifacts: true
216 variables:
217 IMAGE: fedora
218 MAKE_CHECK_ARGS: check-acceptance
5896c539 219 <<: *acceptance_definition
c5008c76 220
699616db
TH
221build-system-centos:
222 <<: *native_build_job_definition
223 variables:
224 IMAGE: centos8
db0108d5 225 CONFIGURE_ARGS: --disable-nettle --enable-gcrypt --enable-fdt=system
3ffc7f01 226 TARGETS: ppc64-softmmu or1k-softmmu s390x-softmmu
699616db
TH
227 x86_64-softmmu rx-softmmu sh4-softmmu nios2-softmmu
228 MAKE_CHECK_ARGS: check-build
229 artifacts:
0a796d63 230 expire_in: 2 days
699616db
TH
231 paths:
232 - build
233
234check-system-centos:
235 <<: *native_test_job_definition
236 needs:
237 - job: build-system-centos
238 artifacts: true
239 variables:
240 IMAGE: centos8
241 MAKE_CHECK_ARGS: check
242
243acceptance-system-centos:
244 <<: *native_test_job_definition
245 needs:
246 - job: build-system-centos
247 artifacts: true
248 variables:
249 IMAGE: centos8
250 MAKE_CHECK_ARGS: check-acceptance
5896c539 251 <<: *acceptance_definition
699616db 252
b115ea3a
CYC
253build-system-opensuse:
254 <<: *native_build_job_definition
255 variables:
256 IMAGE: opensuse-leap
db0108d5 257 CONFIGURE_ARGS: --enable-fdt=system
b115ea3a
CYC
258 TARGETS: s390x-softmmu x86_64-softmmu aarch64-softmmu
259 MAKE_CHECK_ARGS: check-build
260 artifacts:
261 expire_in: 2 days
262 paths:
263 - build
264
265check-system-opensuse:
266 <<: *native_test_job_definition
267 needs:
268 - job: build-system-opensuse
269 artifacts: true
270 variables:
271 IMAGE: opensuse-leap
272 MAKE_CHECK_ARGS: check
273
274acceptance-system-opensuse:
275 <<: *native_test_job_definition
276 needs:
277 - job: build-system-opensuse
278 artifacts: true
279 variables:
280 IMAGE: opensuse-leap
281 MAKE_CHECK_ARGS: check-acceptance
282 <<: *acceptance_definition
283
284
0a8b05c7 285build-disabled:
c962864f
DB
286 <<: *native_build_job_definition
287 variables:
288 IMAGE: fedora
94a4f816
PMD
289 CONFIGURE_ARGS:
290 --disable-attr
0c4d885f 291 --disable-auth-pam
94a4f816
PMD
292 --disable-avx2
293 --disable-bochs
294 --disable-brlapi
295 --disable-bzip2
296 --disable-cap-ng
297 --disable-capstone
298 --disable-cloop
299 --disable-coroutine-pool
300 --disable-curl
301 --disable-curses
302 --disable-dmg
303 --disable-docs
0c4d885f 304 --disable-gcrypt
94a4f816
PMD
305 --disable-glusterfs
306 --disable-gnutls
307 --disable-gtk
308 --disable-guest-agent
309 --disable-iconv
0c4d885f 310 --disable-keyring
94a4f816
PMD
311 --disable-kvm
312 --disable-libiscsi
313 --disable-libpmem
314 --disable-libssh
0c4d885f 315 --disable-libudev
94a4f816
PMD
316 --disable-libusb
317 --disable-libxml2
318 --disable-linux-aio
319 --disable-live-block-migration
320 --disable-lzo
321 --disable-malloc-trim
322 --disable-mpath
323 --disable-nettle
324 --disable-numa
0c4d885f 325 --disable-opengl
94a4f816
PMD
326 --disable-parallels
327 --disable-pie
328 --disable-qcow1
329 --disable-qed
330 --disable-qom-cast-debug
331 --disable-rbd
332 --disable-rdma
333 --disable-replication
334 --disable-sdl
335 --disable-seccomp
336 --disable-sheepdog
337 --disable-slirp
338 --disable-smartcard
339 --disable-snappy
0c4d885f 340 --disable-sparse
94a4f816
PMD
341 --disable-spice
342 --disable-strip
343 --disable-tpm
344 --disable-usb-redir
345 --disable-vdi
346 --disable-vhost-crypto
347 --disable-vhost-net
348 --disable-vhost-scsi
349 --disable-vhost-user
350 --disable-vhost-vdpa
351 --disable-vhost-vsock
352 --disable-virglrenderer
353 --disable-vnc
354 --disable-vte
355 --disable-vvfat
356 --disable-xen
357 --disable-zstd
a7524adb
TH
358 TARGETS: arm-softmmu i386-softmmu ppc64-softmmu mips64-softmmu
359 s390x-softmmu i386-linux-user
c962864f 360 MAKE_CHECK_ARGS: check-qtest SPEED=slow
0a8b05c7 361
37b6fd66
PMD
362# This jobs explicitly disable TCG (--disable-tcg), KVM is detected by
363# the configure script. The container doesn't contain Xen headers so
364# Xen accelerator is not detected / selected. As result it build the
365# i386-softmmu and x86_64-softmmu with KVM being the single accelerator
366# available.
0a8b05c7 367build-tcg-disabled:
c962864f
DB
368 <<: *native_build_job_definition
369 variables:
370 IMAGE: centos8
371 script:
372 - mkdir build
373 - cd build
c47110d9 374 - ../configure --disable-tcg --audio-drv-list="" || { cat config.log meson-logs/meson-log.txt && exit 1; }
c962864f
DB
375 - make -j"$JOBS"
376 - make check-unit
377 - make check-qapi-schema
378 - cd tests/qemu-iotests/
379 - ./check -raw 001 002 003 004 005 008 009 010 011 012 021 025 032 033 048
c7cf4ddb
TH
380 052 063 077 086 101 104 106 113 148 150 151 152 157 159 160 163
381 170 171 183 184 192 194 197 208 215 221 222 226 227 236 253 277
d8a18da5 382 - ./check -qcow2 028 051 056 057 058 065 068 082 085 091 095 096 102 122
c7cf4ddb
TH
383 124 132 139 142 144 145 151 152 155 157 165 194 196 197 200 202
384 208 209 215 216 218 222 227 234 246 247 248 250 254 255 257 258
385 260 261 262 263 264 270 272 273 277 279
0a8b05c7
TH
386
387build-user:
c962864f
DB
388 <<: *native_build_job_definition
389 variables:
62c902e0
AB
390 IMAGE: debian-all-test-cross
391 CONFIGURE_ARGS: --disable-tools --disable-system
392 MAKE_CHECK_ARGS: check-tcg
0a8b05c7 393
d01bc253
PMD
394build-user-static:
395 <<: *native_build_job_definition
396 variables:
397 IMAGE: debian-all-test-cross
398 CONFIGURE_ARGS: --disable-tools --disable-system --static
399 MAKE_CHECK_ARGS: check-tcg
400
ac74e282
AB
401# Only build the softmmu targets we have check-tcg tests for
402build-some-softmmu:
403 <<: *native_build_job_definition
404 variables:
405 IMAGE: debian-all-test-cross
406 CONFIGURE_ARGS: --disable-tools --enable-debug-tcg
407 TARGETS: xtensa-softmmu arm-softmmu aarch64-softmmu alpha-softmmu
408 MAKE_CHECK_ARGS: check-tcg
409
8cdb2cef
AB
410# Run check-tcg against linux-user (with plugins)
411# we skip sparc64-linux-user until it has been fixed somewhat
412# we skip cris-linux-user as it doesn't use the common run loop
413build-user-plugins:
414 <<: *native_build_job_definition
415 variables:
416 IMAGE: debian-all-test-cross
417 CONFIGURE_ARGS: --disable-tools --disable-system --enable-plugins --enable-debug-tcg --target-list-exclude=sparc64-linux-user,cris-linux-user
418 MAKE_CHECK_ARGS: check-tcg
419 timeout: 1h 30m
420
4e41d4a3
PMD
421build-user-centos7:
422 <<: *native_build_job_definition
423 variables:
424 IMAGE: centos7
425 CONFIGURE_ARGS: --disable-system --disable-tools --disable-docs
426 MAKE_CHECK_ARGS: check-tcg
427
ac74e282
AB
428build-some-softmmu-plugins:
429 <<: *native_build_job_definition
430 variables:
431 IMAGE: debian-all-test-cross
432 CONFIGURE_ARGS: --disable-tools --disable-user --enable-plugins --enable-debug-tcg
433 TARGETS: xtensa-softmmu arm-softmmu aarch64-softmmu alpha-softmmu
434 MAKE_CHECK_ARGS: check-tcg
435
0a8b05c7 436build-clang:
c962864f
DB
437 <<: *native_build_job_definition
438 variables:
439 IMAGE: fedora
440 CONFIGURE_ARGS: --cc=clang --cxx=clang++
441 TARGETS: alpha-softmmu arm-softmmu m68k-softmmu mips64-softmmu
b610eba3 442 ppc-softmmu s390x-softmmu arm-linux-user
c962864f 443 MAKE_CHECK_ARGS: check
5f55d64b 444
1c0c06b1
AB
445# These targets are on the way out
446build-deprecated:
447 <<: *native_build_job_definition
448 variables:
449 IMAGE: debian-all-test-cross
3ffc7f01 450 CONFIGURE_ARGS: --disable-docs --disable-tools
2614670b 451 MAKE_CHECK_ARGS: build-tcg
3ffc7f01
AB
452 TARGETS: ppc64abi32-linux-user tilegx-linux-user lm32-softmmu
453 unicore32-softmmu
2614670b
AB
454 artifacts:
455 expire_in: 2 days
456 paths:
457 - build
458
459# We split the check-tcg step as test failures are expected but we still
460# want to catch the build breaking.
461check-deprecated:
462 <<: *native_test_job_definition
463 needs:
464 - job: build-deprecated
465 artifacts: true
466 variables:
467 IMAGE: debian-all-test-cross
468 MAKE_CHECK_ARGS: check-tcg
1c0c06b1
AB
469 allow_failure: true
470
48eac101 471build-oss-fuzz:
b610eba3
TH
472 <<: *native_build_job_definition
473 variables:
474 IMAGE: fedora
475 script:
48eac101
AB
476 - mkdir build-oss-fuzz
477 - CC="clang" CXX="clang++" CFLAGS="-fsanitize=address"
478 ./scripts/oss-fuzz/build.sh
5ab04d5e 479 - export ASAN_OPTIONS="fast_unwind_on_malloc=0"
48eac101
AB
480 - for fuzzer in $(find ./build-oss-fuzz/DEST_DIR/ -executable -type f
481 | grep -v slirp); do
482 grep "LLVMFuzzerTestOneInput" ${fuzzer} > /dev/null 2>&1 || continue ;
483 echo Testing ${fuzzer} ... ;
320c6e78 484 "${fuzzer}" -runs=1 -seed=1 || exit 1 ;
b610eba3 485 done
5ab04d5e
TH
486 # Unrelated to fuzzer: run some tests with -fsanitize=address
487 - cd build-oss-fuzz && make check-qtest-i386 check-unit
b610eba3 488
5f55d64b 489build-tci:
c962864f
DB
490 <<: *native_build_job_definition
491 variables:
492 IMAGE: fedora
493 script:
494 - TARGETS="aarch64 alpha arm hppa m68k microblaze moxie ppc64 s390x x86_64"
495 - mkdir build
496 - cd build
497 - ../configure --enable-tcg-interpreter
c47110d9 498 --target-list="$(for tg in $TARGETS; do echo -n ${tg}'-softmmu '; done)" || { cat config.log meson-logs/meson-log.txt && exit 1; }
c962864f
DB
499 - make -j"$JOBS"
500 - make run-tcg-tests-x86_64-softmmu
501 - make tests/qtest/boot-serial-test tests/qtest/cdrom-test tests/qtest/pxe-test
502 - for tg in $TARGETS ; do
64ed6f92 503 export QTEST_QEMU_BINARY="./qemu-system-${tg}" ;
c962864f
DB
504 ./tests/qtest/boot-serial-test || exit 1 ;
505 ./tests/qtest/cdrom-test || exit 1 ;
506 done
64ed6f92
PB
507 - QTEST_QEMU_BINARY="./qemu-system-x86_64" ./tests/qtest/pxe-test
508 - QTEST_QEMU_BINARY="./qemu-system-s390x" ./tests/qtest/pxe-test -m slow
affcc09c 509
d1a8b308
PMD
510# Alternate coroutines implementations are only really of interest to KVM users
511# However we can't test against KVM on Gitlab-CI so we can only run unit tests
512build-coroutine-ucontext:
513 <<: *native_build_job_definition
514 variables:
515 IMAGE: ubuntu2004
516 CONFIGURE_ARGS: --with-coroutine=ucontext --disable-tcg
517 MAKE_CHECK_ARGS: check-unit
518
519build-coroutine-sigaltstack:
520 <<: *native_build_job_definition
521 variables:
522 IMAGE: ubuntu2004
523 CONFIGURE_ARGS: --with-coroutine=sigaltstack --disable-tcg
524 MAKE_CHECK_ARGS: check-unit
525
affcc09c
DB
526# Most jobs test latest gcrypt or nettle builds
527#
528# These jobs test old gcrypt and nettle from RHEL7
529# which had some API differences.
530build-crypto-old-nettle:
531 <<: *native_build_job_definition
532 variables:
533 IMAGE: centos7
534 TARGETS: x86_64-softmmu x86_64-linux-user
535 CONFIGURE_ARGS: --disable-gcrypt --enable-nettle
536 MAKE_CHECK_ARGS: check-build
537 artifacts:
538 paths:
539 - build
540
541check-crypto-old-nettle:
542 <<: *native_test_job_definition
543 needs:
544 - job: build-crypto-old-nettle
545 artifacts: true
546 variables:
547 IMAGE: centos7
548 MAKE_CHECK_ARGS: check
549
550
551build-crypto-old-gcrypt:
552 <<: *native_build_job_definition
553 variables:
554 IMAGE: centos7
555 TARGETS: x86_64-softmmu x86_64-linux-user
556 CONFIGURE_ARGS: --disable-nettle --enable-gcrypt
557 MAKE_CHECK_ARGS: check-build
558 artifacts:
559 paths:
560 - build
561
562check-crypto-old-gcrypt:
563 <<: *native_test_job_definition
564 needs:
565 - job: build-crypto-old-gcrypt
566 artifacts: true
567 variables:
568 IMAGE: centos7
569 MAKE_CHECK_ARGS: check
570
571
572build-crypto-only-gnutls:
573 <<: *native_build_job_definition
574 variables:
575 IMAGE: centos7
576 TARGETS: x86_64-softmmu x86_64-linux-user
577 CONFIGURE_ARGS: --disable-nettle --disable-gcrypt --enable-gnutls
578 MAKE_CHECK_ARGS: check-build
579 artifacts:
580 paths:
581 - build
582
583check-crypto-only-gnutls:
584 <<: *native_test_job_definition
585 needs:
586 - job: build-crypto-only-gnutls
587 artifacts: true
588 variables:
589 IMAGE: centos7
590 MAKE_CHECK_ARGS: check
1f475472 591
1352d568
PMD
592# We don't need to exercise every backend with every front-end
593build-trace-multi-user:
594 <<: *native_build_job_definition
595 variables:
596 IMAGE: ubuntu2004
597 CONFIGURE_ARGS: --enable-trace-backends=log,simple,syslog --disable-system
598
599build-trace-ftrace-system:
600 <<: *native_build_job_definition
601 variables:
602 IMAGE: ubuntu2004
603 CONFIGURE_ARGS: --enable-trace-backends=ftrace --target-list=x86_64-softmmu
604
605build-trace-ust-system:
606 <<: *native_build_job_definition
607 variables:
608 IMAGE: ubuntu2004
609 CONFIGURE_ARGS: --enable-trace-backends=ust --target-list=x86_64-softmmu
1f475472 610
3fed93f3
AB
611# Check our reduced build configurations
612build-without-default-devices:
613 <<: *native_build_job_definition
614 variables:
615 IMAGE: centos8
616 CONFIGURE_ARGS: --without-default-devices --disable-user
617
53f41245
AB
618build-without-default-features:
619 <<: *native_build_job_definition
620 variables:
621 IMAGE: debian-amd64
622 CONFIGURE_ARGS: --without-default-features --disable-user
8cd95aec 623 --target-list-exclude=arm-softmmu,i386-softmmu,mipsel-softmmu,mips64-softmmu,ppc-softmmu
53f41245
AB
624 MAKE_CHECK_ARGS: check-unit
625
1f475472
DB
626check-patch:
627 stage: build
628 image: $CI_REGISTRY_IMAGE/qemu/centos8:latest
629 script: .gitlab-ci.d/check-patch.py
630 except:
631 variables:
632 - $CI_PROJECT_NAMESPACE == 'qemu-project' && $CI_COMMIT_BRANCH == 'master'
633 variables:
634 GIT_DEPTH: 1000
635 allow_failure: true
34ed46a2
DB
636
637check-dco:
638 stage: build
639 image: $CI_REGISTRY_IMAGE/qemu/centos8:latest
640 script: .gitlab-ci.d/check-dco.py
641 except:
642 variables:
643 - $CI_PROJECT_NAMESPACE == 'qemu-project' && $CI_COMMIT_BRANCH == 'master'
644 variables:
645 GIT_DEPTH: 1000
4daa9055 646
c4698e36
MAL
647build-libvhost-user:
648 stage: build
649 image: $CI_REGISTRY_IMAGE/qemu/fedora:latest
650 before_script:
651 - dnf install -y meson ninja-build
652 script:
653 - mkdir subprojects/libvhost-user/build
654 - cd subprojects/libvhost-user/build
655 - meson
656 - ninja
657
a8a3abe0
AB
658# Prepare for GitLab pages deployment. Anything copied into the
659# "public" directory will be deployed to $USER.gitlab.io/$PROJECT
4daa9055 660pages:
a8a3abe0 661 image: $CI_REGISTRY_IMAGE/qemu/debian-amd64:latest
4daa9055
DB
662 stage: test
663 needs:
a8a3abe0 664 - job: build-tools-and-docs-debian
4daa9055 665 script:
a8a3abe0
AB
666 - mkdir -p public
667 # HTML-ised source tree
668 - make gtags
669 - htags -anT --tree-view=filetree -m qemu_init
670 -t "Welcome to the QEMU sourcecode"
671 - mv HTML public/src
672 # Project documentation
b93f4fbd
PM
673 - make -C build install DESTDIR=$(pwd)/temp-install
674 - mv temp-install/usr/local/share/doc/qemu/* public/
4daa9055
DB
675 artifacts:
676 paths:
677 - public