.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: debian:12-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:12-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-bookworm-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-bookworm-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: - debian-12-riscv64-gcc-debug qemu-smoke-ppc64le-powernv9-gcc: extends: .qemu-ppc64le script: - ./automation/scripts/qemu-smoke-ppc64le.sh powernv9 2>&1 | tee ${LOGFILE} needs: - debian-12-ppc64le-gcc-debug