Files
xen/automation/gitlab-ci/test.yaml
T
Marek Marczykowski-Górecki 43de96a70f automation: add a test for HVM domU on PVH dom0
This tests if QEMU works in PVH dom0. QEMU in dom0 requires enabling TUN
in the kernel, so do that too.

Add it to both x86 runners, similar to the PVH domU test.

Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
Release-Acked-By: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>
2024-06-11 12:06:46 +01:00

452 lines
11 KiB
YAML

.test-jobs-common:
stage: test
image: registry.gitlab.com/xen-project/xen/${CONTAINER}
.arm64-test-needs: &arm64-test-needs
- alpine-3.18-arm64-rootfs-export
- kernel-5.19-arm64-export
- qemu-system-aarch64-6.0.0-arm64-export
.arm32-test-needs: &arm32-test-needs
- qemu-system-aarch64-6.0.0-arm32-export
.x86-64-test-needs: &x86-64-test-needs
- alpine-3.18-rootfs-export
- kernel-6.1.19-export
.qemu-arm64:
extends: .test-jobs-common
variables:
CONTAINER: debian:bookworm-arm64v8
LOGFILE: qemu-smoke-arm64.log
artifacts:
paths:
- smoke.serial
- '*.log'
when: always
tags:
- arm64
.qemu-arm32:
extends: .test-jobs-common
variables:
CONTAINER: debian:bookworm-arm64v8
LOGFILE: qemu-smoke-arm32.log
artifacts:
paths:
- smoke.serial
- '*.log'
when: always
tags:
- arm64
.qemu-x86-64:
extends: .test-jobs-common
variables:
CONTAINER: debian:bookworm
LOGFILE: qemu-smoke-x86-64.log
artifacts:
paths:
- smoke.serial
- '*.log'
when: always
tags:
- x86_64
.qemu-riscv64:
extends: .test-jobs-common
variables:
CONTAINER: archlinux:current-riscv64
LOGFILE: qemu-smoke-riscv64.log
artifacts:
paths:
- smoke.serial
- '*.log'
when: always
tags:
- x86_64
.qemu-ppc64le:
extends: .test-jobs-common
variables:
CONTAINER: debian:bullseye-ppc64le
LOGFILE: qemu-smoke-ppc64le.log
artifacts:
paths:
- smoke.serial
- '*.log'
when: always
tags:
- x86_64
.xilinx-arm64:
extends: .test-jobs-common
variables:
CONTAINER: ubuntu:xenial-xilinx
LOGFILE: qemu-smoke-xilinx.log
artifacts:
paths:
- smoke.serial
- '*.log'
- '*.dtb'
when: always
only:
variables:
- $XILINX_JOBS == "true" && $CI_COMMIT_REF_PROTECTED == "true"
tags:
- xilinx
.adl-x86-64:
extends: .test-jobs-common
variables:
# the test controller runs on RPi4
CONTAINER: alpine:3.18-arm64v8
LOGFILE: smoke-test.log
PCIDEV: "03:00.0"
PCIDEV_INTR: "MSI-X"
CONSOLE_OPTS: "console=com1 com1=115200,8n1"
artifacts:
paths:
- smoke.serial
- '*.log'
when: always
only:
variables:
- $QUBES_JOBS == "true" && $CI_COMMIT_REF_PROTECTED == "true"
tags:
- qubes-hw2
.zen3p-x86-64:
# it's really similar to the above
extends: .adl-x86-64
variables:
PCIDEV: "01:00.0"
PCIDEV_INTR: "MSI-X"
CONSOLE_OPTS: "console=com1 com1=115200,8n1,pci,msi"
tags:
- qubes-hw11
# Test jobs
build-each-commit-gcc:
extends: .test-jobs-common
variables:
CONTAINER: debian:bookworm
XEN_TARGET_ARCH: x86_64
CC: gcc
script:
- 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
artifacts:
paths:
- '*.log'
when: always
needs: []
tags:
- x86_64
xilinx-smoke-dom0less-arm64-gcc-debug:
extends: .xilinx-arm64
script:
- ./automation/scripts/xilinx-smoke-dom0less-arm64.sh 2>&1 | tee ${LOGFILE}
needs:
- *arm64-test-needs
- alpine-3.18-gcc-debug-arm64
xilinx-smoke-dom0less-arm64-gcc-debug-gem-passthrough:
extends: .xilinx-arm64
script:
- ./automation/scripts/xilinx-smoke-dom0less-arm64.sh gem-passthrough 2>&1 | tee ${LOGFILE}
needs:
- *arm64-test-needs
- alpine-3.18-gcc-debug-arm64
adl-smoke-x86-64-gcc-debug:
extends: .adl-x86-64
script:
- ./automation/scripts/qubes-x86-64.sh 2>&1 | tee ${LOGFILE}
needs:
- *x86-64-test-needs
- alpine-3.18-gcc-debug
adl-smoke-x86-64-dom0pvh-gcc-debug:
extends: .adl-x86-64
script:
- ./automation/scripts/qubes-x86-64.sh dom0pvh 2>&1 | tee ${LOGFILE}
needs:
- *x86-64-test-needs
- alpine-3.18-gcc-debug
adl-smoke-x86-64-dom0pvh-hvm-gcc-debug:
extends: .adl-x86-64
script:
- ./automation/scripts/qubes-x86-64.sh dom0pvh-hvm 2>&1 | tee ${LOGFILE}
needs:
- *x86-64-test-needs
- alpine-3.18-gcc-debug
adl-suspend-x86-64-gcc-debug:
extends: .adl-x86-64
script:
- ./automation/scripts/qubes-x86-64.sh s3 2>&1 | tee ${LOGFILE}
needs:
- *x86-64-test-needs
- alpine-3.18-gcc-debug
adl-pci-pv-x86-64-gcc-debug:
extends: .adl-x86-64
script:
- ./automation/scripts/qubes-x86-64.sh pci-pv 2>&1 | tee ${LOGFILE}
needs:
- *x86-64-test-needs
- alpine-3.18-gcc-debug
adl-pci-hvm-x86-64-gcc-debug:
extends: .adl-x86-64
script:
- ./automation/scripts/qubes-x86-64.sh pci-hvm 2>&1 | tee ${LOGFILE}
needs:
- *x86-64-test-needs
- alpine-3.18-gcc-debug
zen3p-smoke-x86-64-gcc-debug:
extends: .zen3p-x86-64
script:
- ./automation/scripts/qubes-x86-64.sh 2>&1 | tee ${LOGFILE}
needs:
- *x86-64-test-needs
- alpine-3.18-gcc-debug
zen3p-smoke-x86-64-dom0pvh-gcc-debug:
extends: .zen3p-x86-64
script:
- ./automation/scripts/qubes-x86-64.sh dom0pvh 2>&1 | tee ${LOGFILE}
needs:
- *x86-64-test-needs
- alpine-3.18-gcc-debug
zen3p-smoke-x86-64-dom0pvh-hvm-gcc-debug:
extends: .zen3p-x86-64
script:
- ./automation/scripts/qubes-x86-64.sh dom0pvh-hvm 2>&1 | tee ${LOGFILE}
needs:
- *x86-64-test-needs
- alpine-3.18-gcc-debug
zen3p-pci-hvm-x86-64-gcc-debug:
extends: .zen3p-x86-64
script:
- ./automation/scripts/qubes-x86-64.sh pci-hvm 2>&1 | tee ${LOGFILE}
needs:
- *x86-64-test-needs
- alpine-3.18-gcc-debug
qemu-smoke-dom0-arm64-gcc:
extends: .qemu-arm64
script:
- ./automation/scripts/qemu-smoke-dom0-arm64.sh 2>&1 | tee ${LOGFILE}
needs:
- *arm64-test-needs
- alpine-3.18-gcc-arm64
qemu-smoke-dom0-arm64-gcc-debug:
extends: .qemu-arm64
script:
- ./automation/scripts/qemu-smoke-dom0-arm64.sh 2>&1 | tee ${LOGFILE}
needs:
- *arm64-test-needs
- alpine-3.18-gcc-debug-arm64
qemu-smoke-dom0less-arm64-gcc:
extends: .qemu-arm64
script:
- ./automation/scripts/qemu-smoke-dom0less-arm64.sh 2>&1 | tee ${LOGFILE}
needs:
- *arm64-test-needs
- alpine-3.18-gcc-arm64
qemu-smoke-dom0less-arm64-gcc-debug:
extends: .qemu-arm64
script:
- ./automation/scripts/qemu-smoke-dom0less-arm64.sh 2>&1 | tee ${LOGFILE}
needs:
- *arm64-test-needs
- alpine-3.18-gcc-debug-arm64
qemu-smoke-dom0less-arm64-gcc-debug-gicv3:
extends: .qemu-arm64
script:
- ./automation/scripts/qemu-smoke-dom0less-arm64.sh gicv3 2>&1 | tee ${LOGFILE}
needs:
- *arm64-test-needs
- alpine-3.18-gcc-debug-arm64
qemu-smoke-dom0less-arm64-gcc-debug-staticmem:
extends: .qemu-arm64
script:
- ./automation/scripts/qemu-smoke-dom0less-arm64.sh static-mem 2>&1 | tee ${LOGFILE}
needs:
- *arm64-test-needs
- alpine-3.18-gcc-debug-arm64-staticmem
qemu-smoke-dom0less-arm64-gcc-debug-staticheap:
extends: .qemu-arm64
script:
- ./automation/scripts/qemu-smoke-dom0less-arm64.sh static-heap 2>&1 | tee ${LOGFILE}
needs:
- *arm64-test-needs
- alpine-3.18-gcc-debug-arm64
qemu-smoke-dom0less-arm64-gcc-debug-static-shared-mem:
extends: .qemu-arm64
script:
- ./automation/scripts/qemu-smoke-dom0less-arm64.sh static-shared-mem 2>&1 | tee ${LOGFILE}
needs:
- *arm64-test-needs
- alpine-3.18-gcc-debug-arm64-static-shared-mem
qemu-smoke-dom0less-arm64-gcc-debug-boot-cpupools:
extends: .qemu-arm64
script:
- ./automation/scripts/qemu-smoke-dom0less-arm64.sh boot-cpupools 2>&1 | tee ${LOGFILE}
needs:
- *arm64-test-needs
- alpine-3.18-gcc-debug-arm64-boot-cpupools
qemu-smoke-dom0less-arm64-gcc-debug-earlyprintk:
extends: .qemu-arm64
script:
- ./automation/scripts/qemu-smoke-dom0less-arm64.sh earlyprintk 2>&1 | tee ${LOGFILE}
needs:
- *arm64-test-needs
- alpine-3.18-gcc-debug-arm64-earlyprintk
qemu-xtf-dom0less-arm64-gcc-hyp-xen-version:
extends: .qemu-arm64
script:
- ./automation/scripts/qemu-xtf-dom0less-arm64.sh hyp-xen-version 2>&1 | tee ${LOGFILE}
needs:
- alpine-3.18-gcc-arm64
- qemu-system-aarch64-6.0.0-arm64-export
qemu-xtf-dom0less-arm64-gcc-debug-hyp-xen-version:
extends: .qemu-arm64
script:
- ./automation/scripts/qemu-xtf-dom0less-arm64.sh hyp-xen-version 2>&1 | tee ${LOGFILE}
needs:
- alpine-3.18-gcc-debug-arm64
- qemu-system-aarch64-6.0.0-arm64-export
qemu-smoke-dom0-arm32-gcc:
extends: .qemu-arm32
script:
- ./automation/scripts/qemu-smoke-dom0-arm32.sh 2>&1 | tee ${LOGFILE}
needs:
- *arm32-test-needs
- yocto-qemuarm
qemu-smoke-dom0less-arm32-gcc:
extends: .qemu-arm32
script:
- ./automation/scripts/qemu-smoke-dom0less-arm32.sh 2>&1 | tee ${LOGFILE}
needs:
- *arm32-test-needs
- debian-bookworm-gcc-arm32
qemu-smoke-dom0less-arm32-gcc-debug:
extends: .qemu-arm32
script:
- ./automation/scripts/qemu-smoke-dom0less-arm32.sh 2>&1 | tee ${LOGFILE}
needs:
- *arm32-test-needs
- debian-bookworm-gcc-arm32-debug
qemu-smoke-dom0less-arm32-gcc-debug-staticmem:
extends: .qemu-arm32
script:
- ./automation/scripts/qemu-smoke-dom0less-arm32.sh static-mem 2>&1 | tee ${LOGFILE}
needs:
- *arm32-test-needs
- debian-bookworm-gcc-arm32-debug-staticmem
qemu-smoke-dom0less-arm32-gcc-debug-gzip:
extends: .qemu-arm32
script:
- ./automation/scripts/qemu-smoke-dom0less-arm32.sh gzip 2>&1 | tee ${LOGFILE}
needs:
- *arm32-test-needs
- debian-bookworm-gcc-arm32-debug
qemu-smoke-dom0less-arm32-gcc-without-dom0:
extends: .qemu-arm32
script:
- ./automation/scripts/qemu-smoke-dom0less-arm32.sh without-dom0 2>&1 | tee ${LOGFILE}
needs:
- *arm32-test-needs
- debian-bookworm-gcc-arm32
qemu-smoke-dom0less-arm32-gcc-debug-without-dom0:
extends: .qemu-arm32
script:
- ./automation/scripts/qemu-smoke-dom0less-arm32.sh without-dom0 2>&1 | tee ${LOGFILE}
needs:
- *arm32-test-needs
- debian-bookworm-gcc-arm32-debug
qemu-smoke-dom0less-arm32-gcc-debug-earlyprintk:
extends: .qemu-arm32
script:
- ./automation/scripts/qemu-smoke-dom0less-arm32.sh earlyprintk 2>&1 | tee ${LOGFILE}
needs:
- *arm32-test-needs
- debian-bookworm-gcc-arm32-debug-earlyprintk
qemu-alpine-x86_64-gcc:
extends: .qemu-x86-64
script:
- ./automation/scripts/qemu-alpine-x86_64.sh 2>&1 | tee ${LOGFILE}
needs:
- *x86-64-test-needs
- alpine-3.18-gcc
qemu-smoke-x86-64-gcc:
extends: .qemu-x86-64
script:
- ./automation/scripts/qemu-smoke-x86-64.sh pv 2>&1 | tee ${LOGFILE}
needs:
- debian-stretch-gcc-debug
qemu-smoke-x86-64-clang:
extends: .qemu-x86-64
script:
- ./automation/scripts/qemu-smoke-x86-64.sh pv 2>&1 | tee ${LOGFILE}
needs:
- debian-bookworm-clang-debug
qemu-smoke-x86-64-gcc-pvh:
extends: .qemu-x86-64
script:
- ./automation/scripts/qemu-smoke-x86-64.sh pvh 2>&1 | tee ${LOGFILE}
needs:
- debian-stretch-gcc-debug
qemu-smoke-x86-64-clang-pvh:
extends: .qemu-x86-64
script:
- ./automation/scripts/qemu-smoke-x86-64.sh pvh 2>&1 | tee ${LOGFILE}
needs:
- debian-bookworm-clang-debug
qemu-smoke-riscv64-gcc:
extends: .qemu-riscv64
script:
- ./automation/scripts/qemu-smoke-riscv64.sh 2>&1 | tee ${LOGFILE}
needs:
- archlinux-current-gcc-riscv64-debug
qemu-smoke-ppc64le-powernv9-gcc:
extends: .qemu-ppc64le
script:
- ./automation/scripts/qemu-smoke-ppc64le.sh powernv9 2>&1 | tee ${LOGFILE}
needs:
- qemu-system-ppc64-8.1.0-ppc64-export
- debian-bullseye-gcc-ppc64le-debug