]> git.proxmox.com Git - mirror_qemu.git/blame - .gitlab-ci.d/buildtest.yml
Merge tag 'pull-lu-20231018' of https://gitlab.com/rth7680/qemu into staging
[mirror_qemu.git] / .gitlab-ci.d / buildtest.yml
CommitLineData
f2f5c3e6
PMD
1include:
2 - local: '/.gitlab-ci.d/buildtest-template.yml'
3
4build-system-alpine:
88b19e4e
AB
5 extends:
6 - .native_build_job_template
7 - .native_build_artifact_template
f2f5c3e6
PMD
8 needs:
9 - job: amd64-alpine-container
10 variables:
11 IMAGE: alpine
d4f784c5 12 TARGETS: avr-softmmu loongarch64-softmmu mips64-softmmu mipsel-softmmu
f2f5c3e6
PMD
13 MAKE_CHECK_ARGS: check-build
14 CONFIGURE_ARGS: --enable-docs --enable-trace-backends=log,simple,syslog
f2f5c3e6
PMD
15
16check-system-alpine:
17 extends: .native_test_job_template
18 needs:
19 - job: build-system-alpine
20 artifacts: true
21 variables:
22 IMAGE: alpine
f178c62a 23 MAKE_CHECK_ARGS: check-unit check-qtest
f2f5c3e6 24
bbbd9b6e
WR
25avocado-system-alpine:
26 extends: .avocado_test_job_template
f2f5c3e6
PMD
27 needs:
28 - job: build-system-alpine
29 artifacts: true
30 variables:
31 IMAGE: alpine
bbbd9b6e 32 MAKE_CHECK_ARGS: check-avocado
78ebc00b 33 AVOCADO_TAGS: arch:avr arch:loongarch64 arch:mips64 arch:mipsel
f2f5c3e6
PMD
34
35build-system-ubuntu:
88b19e4e
AB
36 extends:
37 - .native_build_job_template
38 - .native_build_artifact_template
f2f5c3e6 39 needs:
171080d8 40 job: amd64-ubuntu2204-container
f2f5c3e6 41 variables:
171080d8 42 IMAGE: ubuntu2204
eda2321d 43 CONFIGURE_ARGS: --enable-docs
78ebc00b 44 TARGETS: alpha-softmmu microblazeel-softmmu mips64el-softmmu
f2f5c3e6 45 MAKE_CHECK_ARGS: check-build
f2f5c3e6
PMD
46
47check-system-ubuntu:
48 extends: .native_test_job_template
49 needs:
50 - job: build-system-ubuntu
51 artifacts: true
52 variables:
171080d8 53 IMAGE: ubuntu2204
f2f5c3e6
PMD
54 MAKE_CHECK_ARGS: check
55
bbbd9b6e
WR
56avocado-system-ubuntu:
57 extends: .avocado_test_job_template
f2f5c3e6
PMD
58 needs:
59 - job: build-system-ubuntu
60 artifacts: true
61 variables:
171080d8 62 IMAGE: ubuntu2204
bbbd9b6e 63 MAKE_CHECK_ARGS: check-avocado
78ebc00b 64 AVOCADO_TAGS: arch:alpha arch:microblaze arch:mips64el
f2f5c3e6
PMD
65
66build-system-debian:
88b19e4e
AB
67 extends:
68 - .native_build_job_template
69 - .native_build_artifact_template
f2f5c3e6
PMD
70 needs:
71 job: amd64-debian-container
72 variables:
73 IMAGE: debian-amd64
2f5a375f 74 CONFIGURE_ARGS: --with-coroutine=sigaltstack
d4f784c5 75 TARGETS: arm-softmmu i386-softmmu riscv64-softmmu sh4eb-softmmu
78ebc00b 76 sparc-softmmu xtensa-softmmu
f2f5c3e6 77 MAKE_CHECK_ARGS: check-build
f2f5c3e6
PMD
78
79check-system-debian:
80 extends: .native_test_job_template
81 needs:
82 - job: build-system-debian
83 artifacts: true
84 variables:
85 IMAGE: debian-amd64
86 MAKE_CHECK_ARGS: check
87
bbbd9b6e
WR
88avocado-system-debian:
89 extends: .avocado_test_job_template
f2f5c3e6
PMD
90 needs:
91 - job: build-system-debian
92 artifacts: true
93 variables:
94 IMAGE: debian-amd64
bbbd9b6e 95 MAKE_CHECK_ARGS: check-avocado
78ebc00b 96 AVOCADO_TAGS: arch:arm arch:i386 arch:riscv64 arch:sh4 arch:sparc arch:xtensa
f2f5c3e6 97
f462be4c
TH
98crash-test-debian:
99 extends: .native_test_job_template
100 needs:
101 - job: build-system-debian
102 artifacts: true
103 variables:
104 IMAGE: debian-amd64
105 script:
106 - cd build
4d3bd91b 107 - make NINJA=":" check-venv
c03f57fd 108 - pyvenv/bin/python3 scripts/device-crash-test -q --tcg-only ./qemu-system-i386
f462be4c 109
f2f5c3e6 110build-system-fedora:
88b19e4e
AB
111 extends:
112 - .native_build_job_template
113 - .native_build_artifact_template
f2f5c3e6
PMD
114 needs:
115 job: amd64-fedora-container
116 variables:
117 IMAGE: fedora
118 CONFIGURE_ARGS: --disable-gcrypt --enable-nettle --enable-docs
78ebc00b 119 TARGETS: microblaze-softmmu mips-softmmu
f2f5c3e6
PMD
120 xtensa-softmmu m68k-softmmu riscv32-softmmu ppc-softmmu sparc64-softmmu
121 MAKE_CHECK_ARGS: check-build
f2f5c3e6
PMD
122
123check-system-fedora:
124 extends: .native_test_job_template
125 needs:
126 - job: build-system-fedora
127 artifacts: true
128 variables:
129 IMAGE: fedora
130 MAKE_CHECK_ARGS: check
131
bbbd9b6e
WR
132avocado-system-fedora:
133 extends: .avocado_test_job_template
f2f5c3e6
PMD
134 needs:
135 - job: build-system-fedora
136 artifacts: true
137 variables:
138 IMAGE: fedora
bbbd9b6e 139 MAKE_CHECK_ARGS: check-avocado
78ebc00b
AB
140 AVOCADO_TAGS: arch:microblaze arch:mips arch:xtensa arch:m68k
141 arch:riscv32 arch:ppc arch:sparc64
f2f5c3e6 142
f462be4c
TH
143crash-test-fedora:
144 extends: .native_test_job_template
145 needs:
146 - job: build-system-fedora
147 artifacts: true
148 variables:
149 IMAGE: fedora
150 script:
151 - cd build
4d3bd91b 152 - make NINJA=":" check-venv
c03f57fd
PB
153 - pyvenv/bin/python3 scripts/device-crash-test -q ./qemu-system-ppc
154 - pyvenv/bin/python3 scripts/device-crash-test -q ./qemu-system-riscv32
f462be4c 155
f2f5c3e6 156build-system-centos:
88b19e4e
AB
157 extends:
158 - .native_build_job_template
159 - .native_build_artifact_template
f2f5c3e6
PMD
160 needs:
161 job: amd64-centos8-container
162 variables:
163 IMAGE: centos8
eda2321d 164 CONFIGURE_ARGS: --disable-nettle --enable-gcrypt --enable-vfio-user-server
4cc75ce6 165 --enable-modules --enable-trace-backends=dtrace --enable-docs
f2f5c3e6
PMD
166 TARGETS: ppc64-softmmu or1k-softmmu s390x-softmmu
167 x86_64-softmmu rx-softmmu sh4-softmmu nios2-softmmu
168 MAKE_CHECK_ARGS: check-build
f2f5c3e6
PMD
169
170check-system-centos:
171 extends: .native_test_job_template
172 needs:
173 - job: build-system-centos
174 artifacts: true
175 variables:
176 IMAGE: centos8
177 MAKE_CHECK_ARGS: check
178
bbbd9b6e
WR
179avocado-system-centos:
180 extends: .avocado_test_job_template
f2f5c3e6
PMD
181 needs:
182 - job: build-system-centos
183 artifacts: true
184 variables:
185 IMAGE: centos8
bbbd9b6e 186 MAKE_CHECK_ARGS: check-avocado
78ebc00b
AB
187 AVOCADO_TAGS: arch:ppc64 arch:or1k arch:390x arch:x86_64 arch:rx
188 arch:sh4 arch:nios2
f2f5c3e6
PMD
189
190build-system-opensuse:
88b19e4e
AB
191 extends:
192 - .native_build_job_template
193 - .native_build_artifact_template
f2f5c3e6
PMD
194 needs:
195 job: amd64-opensuse-leap-container
196 variables:
197 IMAGE: opensuse-leap
f2f5c3e6
PMD
198 TARGETS: s390x-softmmu x86_64-softmmu aarch64-softmmu
199 MAKE_CHECK_ARGS: check-build
f2f5c3e6
PMD
200
201check-system-opensuse:
202 extends: .native_test_job_template
203 needs:
204 - job: build-system-opensuse
205 artifacts: true
206 variables:
207 IMAGE: opensuse-leap
208 MAKE_CHECK_ARGS: check
209
bbbd9b6e
WR
210avocado-system-opensuse:
211 extends: .avocado_test_job_template
f2f5c3e6
PMD
212 needs:
213 - job: build-system-opensuse
214 artifacts: true
215 variables:
216 IMAGE: opensuse-leap
bbbd9b6e 217 MAKE_CHECK_ARGS: check-avocado
78ebc00b 218 AVOCADO_TAGS: arch:s390x arch:x86_64 arch:aarch64
f2f5c3e6
PMD
219
220
f2f5c3e6
PMD
221# This jobs explicitly disable TCG (--disable-tcg), KVM is detected by
222# the configure script. The container doesn't contain Xen headers so
223# Xen accelerator is not detected / selected. As result it build the
224# i386-softmmu and x86_64-softmmu with KVM being the single accelerator
225# available.
226# Also use a different coroutine implementation (which is only really of
227# interest to KVM users, i.e. with TCG disabled)
228build-tcg-disabled:
229 extends: .native_build_job_template
230 needs:
231 job: amd64-centos8-container
232 variables:
233 IMAGE: centos8
234 script:
235 - mkdir build
236 - cd build
237 - ../configure --disable-tcg --audio-drv-list="" --with-coroutine=ucontext
3b4f9119 238 --disable-docs --disable-sdl --disable-gtk --disable-vnc
f2f5c3e6
PMD
239 || { cat config.log meson-logs/meson-log.txt && exit 1; }
240 - make -j"$JOBS"
241 - make check-unit
242 - make check-qapi-schema
243 - cd tests/qemu-iotests/
244 - ./check -raw 001 002 003 004 005 008 009 010 011 012 021 025 032 033 048
245 052 063 077 086 101 104 106 113 148 150 151 152 157 159 160 163
c88f0789 246 170 171 183 184 192 194 208 221 226 227 236 253 277 image-fleecing
f2f5c3e6 247 - ./check -qcow2 028 051 056 057 058 065 068 082 085 091 095 096 102 122
db1e1192 248 124 132 139 142 144 145 151 152 155 157 165 194 196 200 202
c88f0789
VSO
249 208 209 216 218 227 234 246 247 248 250 254 255 257 258
250 260 261 262 263 264 270 272 273 277 279 image-fleecing
f2f5c3e6
PMD
251
252build-user:
253 extends: .native_build_job_template
254 needs:
255 job: amd64-debian-user-cross-container
256 variables:
257 IMAGE: debian-all-test-cross
258 CONFIGURE_ARGS: --disable-tools --disable-system
259 MAKE_CHECK_ARGS: check-tcg
260
261build-user-static:
262 extends: .native_build_job_template
263 needs:
264 job: amd64-debian-user-cross-container
265 variables:
266 IMAGE: debian-all-test-cross
267 CONFIGURE_ARGS: --disable-tools --disable-system --static
268 MAKE_CHECK_ARGS: check-tcg
269
f2f5c3e6
PMD
270build-user-hexagon:
271 extends: .native_build_job_template
272 needs:
273 job: hexagon-cross-container
f2f5c3e6
PMD
274 variables:
275 IMAGE: debian-hexagon-cross
276 TARGETS: hexagon-linux-user
277 CONFIGURE_ARGS: --disable-tools --disable-docs --enable-debug-tcg
278 MAKE_CHECK_ARGS: check-tcg
279
280# Only build the softmmu targets we have check-tcg tests for
281build-some-softmmu:
282 extends: .native_build_job_template
283 needs:
284 job: amd64-debian-user-cross-container
285 variables:
286 IMAGE: debian-all-test-cross
287 CONFIGURE_ARGS: --disable-tools --enable-debug
288 TARGETS: xtensa-softmmu arm-softmmu aarch64-softmmu alpha-softmmu
289 MAKE_CHECK_ARGS: check-tcg
290
39ce9237
AB
291# We build tricore in a very minimal tricore only container
292build-tricore-softmmu:
293 extends: .native_build_job_template
294 needs:
295 job: tricore-debian-cross-container
296 variables:
297 IMAGE: debian-tricore-cross
298 CONFIGURE_ARGS: --disable-tools --disable-fdt --enable-debug
299 TARGETS: tricore-softmmu
300 MAKE_CHECK_ARGS: check-tcg
301
f2f5c3e6
PMD
302clang-system:
303 extends: .native_build_job_template
304 needs:
305 job: amd64-fedora-container
306 variables:
307 IMAGE: fedora
308 CONFIGURE_ARGS: --cc=clang --cxx=clang++
309 --extra-cflags=-fsanitize=undefined --extra-cflags=-fno-sanitize-recover=undefined
7c4f7150 310 TARGETS: alpha-softmmu arm-softmmu m68k-softmmu mips64-softmmu s390x-softmmu
f2f5c3e6
PMD
311 MAKE_CHECK_ARGS: check-qtest check-tcg
312
313clang-user:
314 extends: .native_build_job_template
315 needs:
316 job: amd64-debian-user-cross-container
765de32d 317 timeout: 70m
f2f5c3e6
PMD
318 variables:
319 IMAGE: debian-all-test-cross
320 CONFIGURE_ARGS: --cc=clang --cxx=clang++ --disable-system
321 --target-list-exclude=microblazeel-linux-user,aarch64_be-linux-user,i386-linux-user,m68k-linux-user,mipsn32el-linux-user,xtensaeb-linux-user
322 --extra-cflags=-fsanitize=undefined --extra-cflags=-fno-sanitize-recover=undefined
323 MAKE_CHECK_ARGS: check-unit check-tcg
324
325# Set LD_JOBS=1 because this requires LTO and ld consumes a large amount of memory.
326# On gitlab runners, default value sometimes end up calling 2 lds concurrently and
327# triggers an Out-Of-Memory error
328#
5890258a
TH
329# Since slirp callbacks are used in QEMU Timers, we cannot use libslirp with
330# CFI builds, and thus have to disable it here.
f2f5c3e6 331#
bbbd9b6e 332# Split in three sets of build/check/avocado to limit the execution time of each
f2f5c3e6
PMD
333# job
334build-cfi-aarch64:
88b19e4e
AB
335 extends:
336 - .native_build_job_template
337 - .native_build_artifact_template
f2f5c3e6
PMD
338 needs:
339 - job: amd64-fedora-container
340 variables:
341 LD_JOBS: 1
342 AR: llvm-ar
343 IMAGE: fedora
344 CONFIGURE_ARGS: --cc=clang --cxx=clang++ --enable-cfi --enable-cfi-debug
5890258a 345 --enable-safe-stack --disable-slirp
f2f5c3e6
PMD
346 TARGETS: aarch64-softmmu
347 MAKE_CHECK_ARGS: check-build
e37264eb
TH
348 # FIXME: This job is often failing, likely due to out-of-memory problems in
349 # the constrained containers of the shared runners. Thus this is marked as
e312d1fd
DB
350 # skipped until the situation has been solved.
351 QEMU_JOB_SKIPPED: 1
72ec89bf 352 timeout: 90m
f2f5c3e6
PMD
353
354check-cfi-aarch64:
355 extends: .native_test_job_template
356 needs:
357 - job: build-cfi-aarch64
358 artifacts: true
359 variables:
360 IMAGE: fedora
361 MAKE_CHECK_ARGS: check
362
bbbd9b6e
WR
363avocado-cfi-aarch64:
364 extends: .avocado_test_job_template
f2f5c3e6
PMD
365 needs:
366 - job: build-cfi-aarch64
367 artifacts: true
368 variables:
369 IMAGE: fedora
bbbd9b6e 370 MAKE_CHECK_ARGS: check-avocado
f2f5c3e6
PMD
371
372build-cfi-ppc64-s390x:
88b19e4e
AB
373 extends:
374 - .native_build_job_template
375 - .native_build_artifact_template
f2f5c3e6
PMD
376 needs:
377 - job: amd64-fedora-container
378 variables:
379 LD_JOBS: 1
380 AR: llvm-ar
381 IMAGE: fedora
382 CONFIGURE_ARGS: --cc=clang --cxx=clang++ --enable-cfi --enable-cfi-debug
5890258a 383 --enable-safe-stack --disable-slirp
f2f5c3e6
PMD
384 TARGETS: ppc64-softmmu s390x-softmmu
385 MAKE_CHECK_ARGS: check-build
e37264eb
TH
386 # FIXME: This job is often failing, likely due to out-of-memory problems in
387 # the constrained containers of the shared runners. Thus this is marked as
e312d1fd
DB
388 # skipped until the situation has been solved.
389 QEMU_JOB_SKIPPED: 1
72ec89bf 390 timeout: 80m
f2f5c3e6
PMD
391
392check-cfi-ppc64-s390x:
393 extends: .native_test_job_template
394 needs:
395 - job: build-cfi-ppc64-s390x
396 artifacts: true
397 variables:
398 IMAGE: fedora
399 MAKE_CHECK_ARGS: check
400
bbbd9b6e
WR
401avocado-cfi-ppc64-s390x:
402 extends: .avocado_test_job_template
f2f5c3e6
PMD
403 needs:
404 - job: build-cfi-ppc64-s390x
405 artifacts: true
406 variables:
407 IMAGE: fedora
bbbd9b6e 408 MAKE_CHECK_ARGS: check-avocado
f2f5c3e6
PMD
409
410build-cfi-x86_64:
88b19e4e
AB
411 extends:
412 - .native_build_job_template
413 - .native_build_artifact_template
f2f5c3e6
PMD
414 needs:
415 - job: amd64-fedora-container
416 variables:
417 LD_JOBS: 1
418 AR: llvm-ar
419 IMAGE: fedora
420 CONFIGURE_ARGS: --cc=clang --cxx=clang++ --enable-cfi --enable-cfi-debug
5890258a 421 --enable-safe-stack --disable-slirp
f2f5c3e6
PMD
422 TARGETS: x86_64-softmmu
423 MAKE_CHECK_ARGS: check-build
424 timeout: 70m
f2f5c3e6
PMD
425
426check-cfi-x86_64:
427 extends: .native_test_job_template
428 needs:
429 - job: build-cfi-x86_64
430 artifacts: true
431 variables:
432 IMAGE: fedora
433 MAKE_CHECK_ARGS: check
434
bbbd9b6e
WR
435avocado-cfi-x86_64:
436 extends: .avocado_test_job_template
f2f5c3e6
PMD
437 needs:
438 - job: build-cfi-x86_64
439 artifacts: true
440 variables:
441 IMAGE: fedora
bbbd9b6e 442 MAKE_CHECK_ARGS: check-avocado
f2f5c3e6
PMD
443
444tsan-build:
445 extends: .native_build_job_template
446 needs:
171080d8 447 job: amd64-ubuntu2204-container
f2f5c3e6 448 variables:
171080d8
AB
449 IMAGE: ubuntu2204
450 CONFIGURE_ARGS: --enable-tsan --cc=clang --cxx=clang++
eda2321d 451 --enable-trace-backends=ust --disable-slirp
f2f5c3e6 452 TARGETS: x86_64-softmmu ppc64-softmmu riscv64-softmmu x86_64-linux-user
f2f5c3e6 453
bb9ecae7
AB
454# gcov is a GCC features
455gcov:
f2f5c3e6
PMD
456 extends: .native_build_job_template
457 needs:
171080d8 458 job: amd64-ubuntu2204-container
bb9ecae7 459 timeout: 80m
f2f5c3e6 460 variables:
171080d8 461 IMAGE: ubuntu2204
bb9ecae7 462 CONFIGURE_ARGS: --enable-gcov
f2f5c3e6 463 TARGETS: aarch64-softmmu ppc64-softmmu s390x-softmmu x86_64-softmmu
dc389ce1 464 MAKE_CHECK_ARGS: check-unit check-softfloat
f2f5c3e6 465 after_script:
5544d33d
AB
466 - cd build
467 - gcovr --xml-pretty --exclude-unreachable-branches --print-summary
468 -o coverage.xml --root ${CI_PROJECT_DIR} . *.p
469 coverage: /^\s*lines:\s*\d+.\d+\%/
470 artifacts:
471 name: ${CI_JOB_NAME}-${CI_COMMIT_REF_NAME}-${CI_COMMIT_SHA}
dcb242c8 472 when: always
5544d33d 473 expire_in: 2 days
dcb242c8
DB
474 paths:
475 - build/meson-logs/testlog.txt
5544d33d 476 reports:
dcb242c8 477 junit: build/meson-logs/testlog.junit.xml
5544d33d
AB
478 coverage_report:
479 coverage_format: cobertura
480 path: build/coverage.xml
f2f5c3e6
PMD
481
482build-oss-fuzz:
483 extends: .native_build_job_template
484 needs:
485 job: amd64-fedora-container
486 variables:
487 IMAGE: fedora
488 script:
489 - mkdir build-oss-fuzz
3ab8bf83 490 - export LSAN_OPTIONS=suppressions=scripts/oss-fuzz/lsan_suppressions.txt
f2f5c3e6
PMD
491 - CC="clang" CXX="clang++" CFLAGS="-fsanitize=address"
492 ./scripts/oss-fuzz/build.sh
493 - export ASAN_OPTIONS="fast_unwind_on_malloc=0"
494 - for fuzzer in $(find ./build-oss-fuzz/DEST_DIR/ -executable -type f
495 | grep -v slirp); do
496 grep "LLVMFuzzerTestOneInput" ${fuzzer} > /dev/null 2>&1 || continue ;
497 echo Testing ${fuzzer} ... ;
498 "${fuzzer}" -runs=1 -seed=1 || exit 1 ;
499 done
f2f5c3e6
PMD
500
501build-tci:
502 extends: .native_build_job_template
503 needs:
504 job: amd64-debian-user-cross-container
505 variables:
506 IMAGE: debian-all-test-cross
507 script:
508 - TARGETS="aarch64 alpha arm hppa m68k microblaze ppc64 s390x x86_64"
509 - mkdir build
510 - cd build
3b4f9119
TH
511 - ../configure --enable-tcg-interpreter --disable-docs --disable-gtk --disable-vnc
512 --target-list="$(for tg in $TARGETS; do echo -n ${tg}'-softmmu '; done)"
513 || { cat config.log meson-logs/meson-log.txt && exit 1; }
f2f5c3e6
PMD
514 - make -j"$JOBS"
515 - make tests/qtest/boot-serial-test tests/qtest/cdrom-test tests/qtest/pxe-test
516 - for tg in $TARGETS ; do
517 export QTEST_QEMU_BINARY="./qemu-system-${tg}" ;
518 ./tests/qtest/boot-serial-test || exit 1 ;
519 ./tests/qtest/cdrom-test || exit 1 ;
520 done
521 - QTEST_QEMU_BINARY="./qemu-system-x86_64" ./tests/qtest/pxe-test
522 - QTEST_QEMU_BINARY="./qemu-system-s390x" ./tests/qtest/pxe-test -m slow
523 - make check-tcg
524
f2f5c3e6 525# Check our reduced build configurations
e030d08c 526build-without-defaults:
f2f5c3e6
PMD
527 extends: .native_build_job_template
528 needs:
529 job: amd64-centos8-container
530 variables:
531 IMAGE: centos8
8d316275 532 CONFIGURE_ARGS:
e030d08c 533 --without-default-devices
8d316275 534 --without-default-features
e030d08c 535 --disable-fdt
8d316275
TH
536 --disable-pie
537 --disable-qom-cast-debug
8d316275 538 --disable-strip
e030d08c 539 TARGETS: avr-softmmu mips64-softmmu s390x-softmmu sh4-softmmu
8d316275 540 sparc64-softmmu hexagon-linux-user i386-linux-user s390x-linux-user
bb6e4734 541 MAKE_CHECK_ARGS: check
f2f5c3e6
PMD
542
543build-libvhost-user:
e312d1fd 544 extends: .base_job_template
f2f5c3e6 545 stage: build
d4c7a565 546 image: $CI_REGISTRY_IMAGE/qemu/fedora:$QEMU_CI_CONTAINER_TAG
f2f5c3e6
PMD
547 needs:
548 job: amd64-fedora-container
f2f5c3e6
PMD
549 script:
550 - mkdir subprojects/libvhost-user/build
551 - cd subprojects/libvhost-user/build
552 - meson
553 - ninja
554
555# No targets are built here, just tools, docs, and unit tests. This
556# also feeds into the eventual documentation deployment steps later
557build-tools-and-docs-debian:
88b19e4e
AB
558 extends:
559 - .native_build_job_template
560 - .native_build_artifact_template
f2f5c3e6
PMD
561 needs:
562 job: amd64-debian-container
e312d1fd
DB
563 # when running on 'master' we use pre-existing container
564 optional: true
f2f5c3e6
PMD
565 variables:
566 IMAGE: debian-amd64
7630156d 567 MAKE_CHECK_ARGS: check-unit ctags TAGS cscope
f2f5c3e6 568 CONFIGURE_ARGS: --disable-system --disable-user --enable-docs --enable-tools
e312d1fd 569 QEMU_JOB_PUBLISH: 1
f2f5c3e6
PMD
570
571# Prepare for GitLab pages deployment. Anything copied into the
572# "public" directory will be deployed to $USER.gitlab.io/$PROJECT
eafadbbb
DB
573#
574# GitLab publishes from any branch that triggers a CI pipeline
575#
576# For the main repo we don't want to publish from 'staging'
577# since that content may not be pushed, nor do we wish to
578# publish from 'stable-NNN' branches as that content is outdated.
579# Thus we restrict to just the default branch
580#
581# For contributor forks we want to publish from any repo so
582# that users can see the results of their commits, regardless
583# of what topic branch they're currently using
f2f5c3e6 584pages:
e312d1fd 585 extends: .base_job_template
d4c7a565 586 image: $CI_REGISTRY_IMAGE/qemu/debian-amd64:$QEMU_CI_CONTAINER_TAG
f2f5c3e6
PMD
587 stage: test
588 needs:
589 - job: build-tools-and-docs-debian
590 script:
591 - mkdir -p public
592 # HTML-ised source tree
593 - make gtags
594 - htags -anT --tree-view=filetree -m qemu_init
595 -t "Welcome to the QEMU sourcecode"
596 - mv HTML public/src
597 # Project documentation
598 - make -C build install DESTDIR=$(pwd)/temp-install
599 - mv temp-install/usr/local/share/doc/qemu/* public/
600 artifacts:
cef63308 601 when: on_success
f2f5c3e6
PMD
602 paths:
603 - public
e312d1fd
DB
604 variables:
605 QEMU_JOB_PUBLISH: 1