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