]>
Commit | Line | Data |
---|---|---|
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 |
4 | stages: |
5 | - containers | |
fa821f23 | 6 | - containers-layer2 |
d0caa0a8 | 7 | - build |
c5008c76 | 8 | - test |
d0caa0a8 | 9 | |
71920809 | 10 | include: |
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 |
77 | build-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 | ||
91 | check-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 | ||
100 | acceptance-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 | 110 | build-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 | 125 | check-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 | 134 | acceptance-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 |
144 | build-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 | ||
159 | check-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 |
170 | build-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 |
181 | acceptance-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 | |
191 | build-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 | 207 | check-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 | 216 | acceptance-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 |
226 | build-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 | ||
242 | check-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 | ||
251 | acceptance-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 |
261 | build-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 | ||
275 | check-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 | ||
284 | acceptance-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 | 295 | build-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 | 380 | build-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 | |
402 | build-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 |
411 | build-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 |
421 | build-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 | |
434 | build-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 |
444 | build-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 |
451 | build-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 | 461 | clang-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 | ||
473 | clang-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 |
482 | tsan-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 |
492 | build-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. | |
509 | check-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 |
520 | gprof-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 | 531 | build-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 | 551 | build-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 | |
576 | build-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 | ||
585 | build-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. | |
598 | build-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 | ||
611 | check-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 | ||
621 | build-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 | ||
634 | check-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 | ||
644 | build-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 | ||
657 | check-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 |
667 | build-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 | ||
675 | build-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 | ||
683 | build-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 |
692 | build-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 |
700 | build-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 |
710 | check-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 | |
723 | check-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 |
735 | build-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 | 750 | pages: |
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 |