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