1.test-jobs-common:
2  stage: test
3  image: ${XEN_REGISTRY}/${CONTAINER}
4  rules:
5  - if: $SELECTED_JOBS_ONLY && $CI_JOB_NAME =~ $SELECTED_JOBS_ONLY
6  - if: $SELECTED_JOBS_ONLY
7    when: never
8  - when: on_success
9
10.arm64-test-needs: &arm64-test-needs
11  - project: xen-project/hardware/test-artifacts
12    job: linux-6.6.86-arm64
13    ref: master
14  - project: xen-project/hardware/test-artifacts
15    job: alpine-3.18-arm64-rootfs
16    ref: master
17  - qemu-system-aarch64-6.0.0-arm64-export
18
19.arm32-test-needs: &arm32-test-needs
20  - qemu-system-aarch64-6.0.0-arm32-export
21
22.x86-64-test-needs: &x86-64-test-needs
23  - project: xen-project/hardware/test-artifacts
24    job: linux-6.6.56-x86_64
25    ref: master
26  - project: xen-project/hardware/test-artifacts
27    job: alpine-3.18-x86_64-rootfs
28    ref: master
29  - project: xen-project/hardware/test-artifacts
30    job: microcode-x86
31    ref: master
32
33.qemu-arm64:
34  extends: .test-jobs-common
35  variables:
36    CONTAINER: debian:bookworm-arm64v8
37    LOGFILE: qemu-smoke-arm64.log
38  artifacts:
39    paths:
40      - smoke.serial
41      - '*.log'
42    when: always
43  tags:
44    - arm64
45
46.qemu-arm32:
47  extends: .test-jobs-common
48  variables:
49    CONTAINER: debian:bookworm-arm64v8
50    LOGFILE: qemu-smoke-arm32.log
51  artifacts:
52    paths:
53      - smoke.serial
54      - '*.log'
55    when: always
56  tags:
57    - arm64
58
59.qemu-x86-64:
60  extends: .test-jobs-common
61  variables:
62    CONTAINER: debian:12-x86_64
63    LOGFILE: qemu-smoke-x86-64.log
64  artifacts:
65    paths:
66      - smoke.serial
67      - '*.log'
68    when: always
69  tags:
70    - x86_64
71
72.qemu-smoke-x86-64:
73  extends: .qemu-x86-64
74  variables:
75    TEST_TIMEOUT_OVERRIDE: 120
76
77.qemu-riscv64:
78  extends: .test-jobs-common
79  variables:
80    CONTAINER: debian:12-riscv64
81    LOGFILE: qemu-smoke-riscv64.log
82  artifacts:
83    paths:
84      - smoke.serial
85      - '*.log'
86    when: always
87  tags:
88    - x86_64
89
90.qemu-ppc64le:
91  extends: .test-jobs-common
92  variables:
93    CONTAINER: debian:12-ppc64le
94    LOGFILE: qemu-smoke-ppc64le.log
95  artifacts:
96    paths:
97      - smoke.serial
98      - '*.log'
99    when: always
100  tags:
101    - x86_64
102
103.xilinx-arm64:
104  extends: .test-jobs-common
105  variables:
106    CONTAINER: ubuntu:xenial-xilinx
107    LOGFILE: qemu-smoke-xilinx.log
108    TEST_TIMEOUT_OVERRIDE: 120
109  artifacts:
110    paths:
111      - smoke.serial
112      - '*.log'
113      - '*.dtb'
114    when: always
115  rules:
116    - if: $SELECTED_JOBS_ONLY && $CI_JOB_NAME =~ $SELECTED_JOBS_ONLY
117    - if: $SELECTED_JOBS_ONLY
118      when: never
119    - if: $XILINX_JOBS == "true" && $CI_COMMIT_REF_PROTECTED == "true"
120  tags:
121    - xilinx
122
123.xilinx-x86_64:
124  extends: .test-jobs-common
125  variables:
126    CONTAINER: ubuntu:xenial-xilinx
127    LOGFILE: xilinx-smoke-x86_64.log
128    XEN_CMD_CONSOLE: "console=com2 com2=57600,8n1,0x2F8,4"
129    TEST_BOARD: "crater"
130    TEST_TIMEOUT_OVERRIDE: 1000
131  artifacts:
132    paths:
133      - smoke.serial
134      - '*.log'
135    when: always
136  rules:
137    - if: $SELECTED_JOBS_ONLY && $CI_JOB_NAME =~ $SELECTED_JOBS_ONLY
138    - if: $SELECTED_JOBS_ONLY
139      when: never
140    - if: $XILINX_JOBS == "true" && $CI_COMMIT_REF_PROTECTED == "true"
141  tags:
142    - xilinx
143
144.adl-x86-64:
145  extends: .test-jobs-common
146  variables:
147    # the test controller runs on RPi4
148    CONTAINER: alpine:3.18-arm64v8
149    LOGFILE: smoke-test.log
150    PCIDEV: "03:00.0"
151    PCIDEV_INTR: "MSI-X"
152    CONSOLE_OPTS: "console=com1 com1=115200,8n1"
153    SUT_ADDR: test-2.testnet
154  artifacts:
155    paths:
156      - smoke.serial
157      - '*.log'
158    when: always
159  rules:
160    - if: $SELECTED_JOBS_ONLY && $CI_JOB_NAME =~ $SELECTED_JOBS_ONLY
161    - if: $SELECTED_JOBS_ONLY
162      when: never
163    - if: $QUBES_JOBS == "true" && $CI_COMMIT_REF_PROTECTED == "true"
164  tags:
165    - qubes-hw2
166
167.kbl-x86-64:
168  # it's really similar to the ADL one
169  extends: .adl-x86-64
170  variables:
171    PCIDEV: "00:1f.6"
172    PCIDEV_INTR: "MSI"
173    CONSOLE_OPTS: "console=com1 com1=115200,8n1,pci,msi"
174    SUT_ADDR: test-3.testnet
175  tags:
176    - qubes-hw3
177
178.zen2-x86-64:
179  # it's really similar to the above
180  extends: .adl-x86-64
181  variables:
182    PCIDEV: "01:00.0"
183    PCIDEV_INTR: "MSI-X"
184    CONSOLE_OPTS: "console=com1 com1=115200,8n1,pci,msi,04:00.0"
185    SUT_ADDR: test-1.testnet
186  tags:
187    - qubes-hw1
188
189.zen3p-x86-64:
190  # it's really similar to the above
191  extends: .adl-x86-64
192  variables:
193    PCIDEV: "01:00.0"
194    PCIDEV_INTR: "MSI-X"
195    CONSOLE_OPTS: "console=com1 com1=115200,8n1,pci,msi"
196    SUT_ADDR: test-11.testnet
197  tags:
198    - qubes-hw11
199
200# Test jobs
201build-each-commit-gcc:
202  extends: .test-jobs-common
203  variables:
204    CONTAINER: debian:12-x86_64
205    XEN_TARGET_ARCH: x86_64
206    CC: gcc
207  script:
208    - BASE=${BASE_SHA:-${CI_COMMIT_BEFORE_SHA}} TIP=${TIP_SHA:-${CI_COMMIT_SHA}} ./automation/gitlab-ci/build-each-commit.sh 2>&1 | tee build-each-commit-gcc.log
209  artifacts:
210    paths:
211      - '*.log'
212    when: always
213  needs: []
214  tags:
215    - x86_64
216
217xilinx-smoke-dom0less-arm64-gcc-debug:
218  extends: .xilinx-arm64
219  script:
220    - ./automation/scripts/xilinx-smoke-dom0less-arm64.sh 2>&1 | tee ${LOGFILE}
221  needs:
222    - *arm64-test-needs
223    - alpine-3.18-gcc-debug-arm64
224
225xilinx-smoke-dom0less-arm64-gcc-debug-gem-passthrough:
226  extends: .xilinx-arm64
227  script:
228    - ./automation/scripts/xilinx-smoke-dom0less-arm64.sh gem-passthrough 2>&1 | tee ${LOGFILE}
229  needs:
230    - *arm64-test-needs
231    - alpine-3.18-gcc-debug-arm64
232
233xilinx-smoke-dom0-x86_64-gcc-debug:
234  extends: .xilinx-x86_64
235  script:
236    - ./automation/scripts/xilinx-smoke-dom0-x86_64.sh ping 2>&1 | tee ${LOGFILE}
237  needs:
238    - *x86-64-test-needs
239    - alpine-3.18-gcc-debug
240
241xilinx-smoke-dom0-x86_64-gcc-debug-argo:
242  extends: .xilinx-x86_64
243  script:
244    - ./automation/scripts/xilinx-smoke-dom0-x86_64.sh argo 2>&1 | tee ${LOGFILE}
245  needs:
246    - alpine-3.18-gcc-debug
247    - project: xen-project/hardware/test-artifacts
248      job: linux-6.6.56-x86_64
249      ref: master
250    - project: xen-project/hardware/test-artifacts
251      job: alpine-3.18-x86_64-rootfs
252      ref: master
253    - project: xen-project/hardware/test-artifacts
254      job: microcode-x86
255      ref: master
256
257adl-smoke-x86-64-gcc-debug:
258  extends: .adl-x86-64
259  script:
260    - ./automation/scripts/qubes-x86-64.sh dom0pv 2>&1 | tee ${LOGFILE}
261  needs:
262    - *x86-64-test-needs
263    - alpine-3.18-gcc-debug
264
265adl-smoke-x86-64-dom0pvh-gcc-debug:
266  extends: .adl-x86-64
267  script:
268    - ./automation/scripts/qubes-x86-64.sh dom0pvh 2>&1 | tee ${LOGFILE}
269  needs:
270    - *x86-64-test-needs
271    - alpine-3.18-gcc-debug
272
273adl-smoke-x86-64-dom0pvh-hvm-gcc-debug:
274  extends: .adl-x86-64
275  script:
276    - ./automation/scripts/qubes-x86-64.sh dom0pvh-hvm 2>&1 | tee ${LOGFILE}
277  needs:
278    - *x86-64-test-needs
279    - alpine-3.18-gcc-debug
280
281adl-suspend-x86-64-gcc-debug:
282  extends: .adl-x86-64
283  script:
284    - ./automation/scripts/qubes-x86-64.sh s3 2>&1 | tee ${LOGFILE}
285  needs:
286    - *x86-64-test-needs
287    - alpine-3.18-gcc-debug
288
289adl-pci-pv-x86-64-gcc-debug:
290  extends: .adl-x86-64
291  script:
292    - ./automation/scripts/qubes-x86-64.sh pci-pv 2>&1 | tee ${LOGFILE}
293  needs:
294    - *x86-64-test-needs
295    - alpine-3.18-gcc-debug
296
297adl-pci-hvm-x86-64-gcc-debug:
298  extends: .adl-x86-64
299  script:
300    - ./automation/scripts/qubes-x86-64.sh pci-hvm 2>&1 | tee ${LOGFILE}
301  needs:
302    - *x86-64-test-needs
303    - alpine-3.18-gcc-debug
304
305adl-pvshim-x86-64-gcc-debug:
306  extends: .adl-x86-64
307  script:
308    - ./automation/scripts/qubes-x86-64.sh pvshim 2>&1 | tee ${LOGFILE}
309  needs:
310    - *x86-64-test-needs
311    - alpine-3.18-gcc-debug
312
313adl-tools-tests-pv-x86-64-gcc-debug:
314  extends: .adl-x86-64
315  script:
316    - ./automation/scripts/qubes-x86-64.sh tools-tests-pv 2>&1 | tee ${LOGFILE}
317  artifacts:
318    reports:
319      junit: tests-junit.xml
320  needs:
321    - *x86-64-test-needs
322    - alpine-3.18-gcc-debug
323
324adl-tools-tests-pvh-x86-64-gcc-debug:
325  extends: .adl-x86-64
326  script:
327    - ./automation/scripts/qubes-x86-64.sh tools-tests-pvh 2>&1 | tee ${LOGFILE}
328  artifacts:
329    reports:
330      junit: tests-junit.xml
331  needs:
332    - *x86-64-test-needs
333    - alpine-3.18-gcc-debug
334
335kbl-smoke-x86-64-gcc-debug:
336  extends: .kbl-x86-64
337  script:
338    - ./automation/scripts/qubes-x86-64.sh dom0pv 2>&1 | tee ${LOGFILE}
339  needs:
340    - *x86-64-test-needs
341    - alpine-3.18-gcc-debug
342
343kbl-smoke-x86-64-dom0pvh-gcc-debug:
344  extends: .kbl-x86-64
345  script:
346    - ./automation/scripts/qubes-x86-64.sh dom0pvh 2>&1 | tee ${LOGFILE}
347  needs:
348    - *x86-64-test-needs
349    - alpine-3.18-gcc-debug
350
351kbl-smoke-x86-64-dom0pvh-hvm-gcc-debug:
352  extends: .kbl-x86-64
353  script:
354    - ./automation/scripts/qubes-x86-64.sh dom0pvh-hvm 2>&1 | tee ${LOGFILE}
355  needs:
356    - *x86-64-test-needs
357    - alpine-3.18-gcc-debug
358
359kbl-suspend-x86-64-gcc-debug:
360  extends: .kbl-x86-64
361  script:
362    - ./automation/scripts/qubes-x86-64.sh s3 2>&1 | tee ${LOGFILE}
363  needs:
364    - *x86-64-test-needs
365    - alpine-3.18-gcc-debug
366
367kbl-pci-pv-x86-64-gcc-debug:
368  extends: .kbl-x86-64
369  script:
370    - ./automation/scripts/qubes-x86-64.sh pci-pv 2>&1 | tee ${LOGFILE}
371  needs:
372    - *x86-64-test-needs
373    - alpine-3.18-gcc-debug
374
375kbl-pci-hvm-x86-64-gcc-debug:
376  extends: .kbl-x86-64
377  script:
378    - ./automation/scripts/qubes-x86-64.sh pci-hvm 2>&1 | tee ${LOGFILE}
379  needs:
380    - *x86-64-test-needs
381    - alpine-3.18-gcc-debug
382
383kbl-pvshim-x86-64-gcc-debug:
384  extends: .kbl-x86-64
385  script:
386    - ./automation/scripts/qubes-x86-64.sh pvshim 2>&1 | tee ${LOGFILE}
387  needs:
388    - *x86-64-test-needs
389    - alpine-3.18-gcc-debug
390
391kbl-tools-tests-pv-x86-64-gcc-debug:
392  extends: .kbl-x86-64
393  script:
394    - ./automation/scripts/qubes-x86-64.sh tools-tests-pv 2>&1 | tee ${LOGFILE}
395  artifacts:
396    reports:
397      junit: tests-junit.xml
398  needs:
399    - *x86-64-test-needs
400    - alpine-3.18-gcc-debug
401
402kbl-tools-tests-pvh-x86-64-gcc-debug:
403  extends: .kbl-x86-64
404  script:
405    - ./automation/scripts/qubes-x86-64.sh tools-tests-pvh 2>&1 | tee ${LOGFILE}
406  artifacts:
407    reports:
408      junit: tests-junit.xml
409  needs:
410    - *x86-64-test-needs
411    - alpine-3.18-gcc-debug
412
413zen2-smoke-x86-64-gcc-debug:
414  extends: .zen2-x86-64
415  script:
416    - ./automation/scripts/qubes-x86-64.sh dom0pv 2>&1 | tee ${LOGFILE}
417  needs:
418    - *x86-64-test-needs
419    - alpine-3.18-gcc-debug
420
421zen2-suspend-x86-64-gcc-debug:
422  extends: .zen2-x86-64
423  script:
424    - ./automation/scripts/qubes-x86-64.sh s3 2>&1 | tee ${LOGFILE}
425  needs:
426    - *x86-64-test-needs
427    - alpine-3.18-gcc-debug
428
429zen3p-smoke-x86-64-gcc-debug:
430  extends: .zen3p-x86-64
431  script:
432    - ./automation/scripts/qubes-x86-64.sh dom0pv 2>&1 | tee ${LOGFILE}
433  needs:
434    - *x86-64-test-needs
435    - alpine-3.18-gcc-debug
436
437zen3p-smoke-x86-64-dom0pvh-gcc-debug:
438  extends: .zen3p-x86-64
439  script:
440    - ./automation/scripts/qubes-x86-64.sh dom0pvh 2>&1 | tee ${LOGFILE}
441  needs:
442    - *x86-64-test-needs
443    - alpine-3.18-gcc-debug
444
445zen3p-smoke-x86-64-dom0pvh-hvm-gcc-debug:
446  extends: .zen3p-x86-64
447  script:
448    - ./automation/scripts/qubes-x86-64.sh dom0pvh-hvm 2>&1 | tee ${LOGFILE}
449  needs:
450    - *x86-64-test-needs
451    - alpine-3.18-gcc-debug
452
453zen3p-pci-hvm-x86-64-gcc-debug:
454  extends: .zen3p-x86-64
455  script:
456    - ./automation/scripts/qubes-x86-64.sh pci-hvm 2>&1 | tee ${LOGFILE}
457  needs:
458    - *x86-64-test-needs
459    - alpine-3.18-gcc-debug
460
461zen3p-pvshim-x86-64-gcc-debug:
462  extends: .zen3p-x86-64
463  script:
464    - ./automation/scripts/qubes-x86-64.sh pvshim 2>&1 | tee ${LOGFILE}
465  needs:
466    - *x86-64-test-needs
467    - alpine-3.18-gcc-debug
468
469zen3p-tools-tests-pv-x86-64-gcc-debug:
470  extends: .zen3p-x86-64
471  script:
472    - ./automation/scripts/qubes-x86-64.sh tools-tests-pv 2>&1 | tee ${LOGFILE}
473  artifacts:
474    reports:
475      junit: tests-junit.xml
476  needs:
477    - *x86-64-test-needs
478    - alpine-3.18-gcc-debug
479
480zen3p-tools-tests-pvh-x86-64-gcc-debug:
481  extends: .zen3p-x86-64
482  script:
483    - ./automation/scripts/qubes-x86-64.sh tools-tests-pvh 2>&1 | tee ${LOGFILE}
484  artifacts:
485    reports:
486      junit: tests-junit.xml
487  needs:
488    - *x86-64-test-needs
489    - alpine-3.18-gcc-debug
490
491qemu-smoke-dom0-arm64-gcc:
492  extends: .qemu-arm64
493  script:
494    - ./automation/scripts/qemu-smoke-dom0-arm64.sh 2>&1 | tee ${LOGFILE}
495  needs:
496    - *arm64-test-needs
497    - alpine-3.18-gcc-arm64
498
499qemu-smoke-dom0-arm64-gcc-debug:
500  extends: .qemu-arm64
501  script:
502    - ./automation/scripts/qemu-smoke-dom0-arm64.sh 2>&1 | tee ${LOGFILE}
503  needs:
504    - *arm64-test-needs
505    - alpine-3.18-gcc-debug-arm64
506
507qemu-smoke-dom0less-arm64-gcc:
508  extends: .qemu-arm64
509  script:
510    - ./automation/scripts/qemu-smoke-dom0less-arm64.sh 2>&1 | tee ${LOGFILE}
511  needs:
512    - *arm64-test-needs
513    - alpine-3.18-gcc-arm64
514
515qemu-smoke-dom0less-arm64-gcc-debug:
516  extends: .qemu-arm64
517  script:
518    - ./automation/scripts/qemu-smoke-dom0less-arm64.sh 2>&1 | tee ${LOGFILE}
519  needs:
520    - *arm64-test-needs
521    - alpine-3.18-gcc-debug-arm64
522
523qemu-smoke-dom0less-arm64-gcc-debug-gicv3:
524  extends: .qemu-arm64
525  script:
526    - ./automation/scripts/qemu-smoke-dom0less-arm64.sh gicv3 2>&1 | tee ${LOGFILE}
527  needs:
528    - *arm64-test-needs
529    - alpine-3.18-gcc-debug-arm64
530
531qemu-smoke-dom0less-arm64-gcc-debug-staticmem:
532  extends: .qemu-arm64
533  script:
534    - ./automation/scripts/qemu-smoke-dom0less-arm64.sh static-mem 2>&1 | tee ${LOGFILE}
535  needs:
536    - *arm64-test-needs
537    - alpine-3.18-gcc-debug-arm64-staticmem
538
539qemu-smoke-dom0less-arm64-gcc-debug-staticheap:
540 extends: .qemu-arm64
541 script:
542   - ./automation/scripts/qemu-smoke-dom0less-arm64.sh static-heap 2>&1 | tee ${LOGFILE}
543 needs:
544   - *arm64-test-needs
545   - alpine-3.18-gcc-debug-arm64
546
547qemu-smoke-dom0less-arm64-gcc-debug-static-shared-mem:
548  extends: .qemu-arm64
549  script:
550    - ./automation/scripts/qemu-smoke-dom0less-arm64.sh static-shared-mem 2>&1 | tee ${LOGFILE}
551  needs:
552    - *arm64-test-needs
553    - alpine-3.18-gcc-debug-arm64-static-shared-mem
554
555qemu-smoke-dom0less-arm64-gcc-debug-boot-cpupools:
556  extends: .qemu-arm64
557  script:
558    - ./automation/scripts/qemu-smoke-dom0less-arm64.sh boot-cpupools 2>&1 | tee ${LOGFILE}
559  needs:
560    - *arm64-test-needs
561    - alpine-3.18-gcc-debug-arm64-boot-cpupools
562
563qemu-smoke-dom0less-arm64-gcc-debug-earlyprintk:
564  extends: .qemu-arm64
565  script:
566    - ./automation/scripts/qemu-smoke-dom0less-arm64.sh earlyprintk 2>&1 | tee ${LOGFILE}
567  needs:
568    - *arm64-test-needs
569    - alpine-3.18-gcc-debug-arm64-earlyprintk
570
571qemu-xtf-dom0less-arm64-gcc-hyp-xen-version:
572  extends: .qemu-arm64
573  script:
574    - ./automation/scripts/qemu-xtf.sh arm64 mmu64le hyp-xen-version 2>&1 | tee ${LOGFILE}
575  needs:
576    - alpine-3.18-gcc-arm64
577    - qemu-system-aarch64-6.0.0-arm64-export
578
579qemu-xtf-dom0less-arm64-gcc-debug-hyp-xen-version:
580  extends: .qemu-arm64
581  script:
582    - ./automation/scripts/qemu-xtf.sh arm64 mmu64le hyp-xen-version 2>&1 | tee ${LOGFILE}
583  needs:
584    - alpine-3.18-gcc-debug-arm64
585    - qemu-system-aarch64-6.0.0-arm64-export
586
587qemu-smoke-dom0-arm32-gcc:
588  extends: .qemu-arm32
589  script:
590    - ./automation/scripts/qemu-smoke-dom0-arm32.sh 2>&1 | tee ${LOGFILE}
591  needs:
592    - *arm32-test-needs
593    - yocto-qemuarm
594
595qemu-smoke-dom0less-arm32-gcc:
596  extends: .qemu-arm32
597  script:
598    - ./automation/scripts/qemu-smoke-dom0less-arm32.sh 2>&1 | tee ${LOGFILE}
599  needs:
600    - *arm32-test-needs
601    - debian-bookworm-gcc-arm32
602
603qemu-smoke-dom0less-arm32-gcc-debug:
604  extends: .qemu-arm32
605  script:
606    - ./automation/scripts/qemu-smoke-dom0less-arm32.sh 2>&1 | tee ${LOGFILE}
607  needs:
608    - *arm32-test-needs
609    - debian-bookworm-gcc-arm32-debug
610
611qemu-smoke-dom0less-arm32-gcc-debug-staticmem:
612  extends: .qemu-arm32
613  script:
614    - ./automation/scripts/qemu-smoke-dom0less-arm32.sh static-mem 2>&1 | tee ${LOGFILE}
615  needs:
616    - *arm32-test-needs
617    - debian-bookworm-gcc-arm32-debug-staticmem
618
619qemu-smoke-dom0less-arm32-gcc-debug-gzip:
620  extends: .qemu-arm32
621  script:
622    - ./automation/scripts/qemu-smoke-dom0less-arm32.sh gzip 2>&1 | tee ${LOGFILE}
623  needs:
624    - *arm32-test-needs
625    - debian-bookworm-gcc-arm32-debug
626
627qemu-smoke-dom0less-arm32-gcc-without-dom0:
628  extends: .qemu-arm32
629  script:
630    - ./automation/scripts/qemu-smoke-dom0less-arm32.sh without-dom0 2>&1 | tee ${LOGFILE}
631  needs:
632    - *arm32-test-needs
633    - debian-bookworm-gcc-arm32
634
635qemu-smoke-dom0less-arm32-gcc-debug-without-dom0:
636  extends: .qemu-arm32
637  script:
638    - ./automation/scripts/qemu-smoke-dom0less-arm32.sh without-dom0 2>&1 | tee ${LOGFILE}
639  needs:
640    - *arm32-test-needs
641    - debian-bookworm-gcc-arm32-debug
642
643qemu-smoke-dom0less-arm32-gcc-debug-earlyprintk:
644  extends: .qemu-arm32
645  script:
646    - ./automation/scripts/qemu-smoke-dom0less-arm32.sh earlyprintk 2>&1 | tee ${LOGFILE}
647  needs:
648    - *arm32-test-needs
649    - debian-bookworm-gcc-arm32-debug-earlyprintk
650
651qemu-alpine-x86_64-gcc:
652  extends: .qemu-x86-64
653  script:
654    - ./automation/scripts/qemu-alpine-x86_64.sh 2>&1 | tee ${LOGFILE}
655  needs:
656    - *x86-64-test-needs
657    - alpine-3.18-gcc
658
659qemu-smoke-x86-64-gcc:
660  extends: .qemu-smoke-x86-64
661  script:
662    - ./automation/scripts/qemu-xtf.sh x86-64 pv64 example 2>&1 | tee ${LOGFILE}
663  needs:
664    - debian-12-x86_64-gcc-debug
665
666qemu-smoke-x86-64-clang:
667  extends: .qemu-smoke-x86-64
668  script:
669    - ./automation/scripts/qemu-xtf.sh x86-64 pv64 example 2>&1 | tee ${LOGFILE}
670  needs:
671    - debian-12-x86_64-clang-debug
672
673qemu-smoke-x86-64-gcc-pvh:
674  extends: .qemu-smoke-x86-64
675  script:
676    - ./automation/scripts/qemu-xtf.sh x86-64 hvm64 example 2>&1 | tee ${LOGFILE}
677  needs:
678    - debian-12-x86_64-gcc-debug
679
680qemu-smoke-x86-64-clang-pvh:
681  extends: .qemu-smoke-x86-64
682  script:
683    - ./automation/scripts/qemu-xtf.sh x86-64 hvm64 example 2>&1 | tee ${LOGFILE}
684  needs:
685    - debian-12-x86_64-clang-debug
686
687qemu-smoke-x86-64-gcc-efi:
688  extends: .qemu-smoke-x86-64
689  script:
690    - ./automation/scripts/qemu-xtf.sh x86-64-efi pv64 example 2>&1 | tee ${LOGFILE}
691  needs:
692    - debian-12-x86_64-gcc-debug
693
694qemu-xtf-argo-x86_64-gcc-debug:
695  extends: .qemu-smoke-x86-64
696  variables:
697    TEST_TIMEOUT_OVERRIDE: 60
698  script:
699    - ./automation/scripts/qemu-xtf.sh x86-64 pv64 argo 2>&1 | tee ${LOGFILE}
700  needs:
701    - alpine-3.18-gcc-debug
702
703qemu-smoke-riscv64-gcc:
704  extends: .qemu-riscv64
705  script:
706    - ./automation/scripts/qemu-smoke-riscv64.sh 2>&1 | tee ${LOGFILE}
707  needs:
708    - debian-12-riscv64-gcc-debug
709
710qemu-smoke-ppc64le-powernv9-gcc:
711  extends: .qemu-ppc64le
712  script:
713    - ./automation/scripts/qemu-smoke-ppc64le.sh powernv9 2>&1 | tee ${LOGFILE}
714  needs:
715    - debian-12-ppc64le-gcc-debug
716