Files
xen/automation/gitlab-ci/test.yaml
T
Marek Marczykowski-Górecki debe8bf537 CI: Add yet another HW runner
This is AMD Zen2 (Ryzen 5 4500U specifically), in a HP Probook 445 G7.

This one has working S3, so add a test for it here.

Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
2025-03-31 15:04:25 +01:00

609 lines
15 KiB
YAML

.test-jobs-common:
stage: test
image: ${XEN_REGISTRY}/${CONTAINER}
rules:
- if: $SELECTED_JOBS_ONLY && $CI_JOB_NAME =~ $SELECTED_JOBS_ONLY
- if: $SELECTED_JOBS_ONLY
when: never
- when: on_success
.arm64-test-needs: &arm64-test-needs
- alpine-3.18-arm64-rootfs-export
- kernel-6.6.74-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
- kernel-6.1.19-export
- project: xen-project/hardware/test-artifacts
job: x86_64-rootfs-alpine-3.18
ref: master
.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:12-x86_64
LOGFILE: qemu-smoke-x86-64.log
artifacts:
paths:
- smoke.serial
- '*.log'
when: always
tags:
- x86_64
.qemu-smoke-x86-64:
extends: .qemu-x86-64
variables:
TEST_TIMEOUT_OVERRIDE: 120
.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
TEST_TIMEOUT_OVERRIDE: 120
artifacts:
paths:
- smoke.serial
- '*.log'
- '*.dtb'
when: always
rules:
- if: $SELECTED_JOBS_ONLY && $CI_JOB_NAME =~ $SELECTED_JOBS_ONLY
- if: $SELECTED_JOBS_ONLY
when: never
- if: $XILINX_JOBS == "true" && $CI_COMMIT_REF_PROTECTED == "true"
tags:
- xilinx
.xilinx-x86_64:
extends: .test-jobs-common
variables:
CONTAINER: ubuntu:xenial-xilinx
LOGFILE: xilinx-smoke-x86_64.log
XEN_CMD_CONSOLE: "console=com2 com2=57600,8n1,0x2F8,4"
TEST_BOARD: "crater"
TEST_TIMEOUT_OVERRIDE: 1000
artifacts:
paths:
- smoke.serial
- '*.log'
when: always
rules:
- if: $SELECTED_JOBS_ONLY && $CI_JOB_NAME =~ $SELECTED_JOBS_ONLY
- if: $SELECTED_JOBS_ONLY
when: never
- if: $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"
SUT_ADDR: test-2.testnet
artifacts:
paths:
- smoke.serial
- '*.log'
when: always
rules:
- if: $SELECTED_JOBS_ONLY && $CI_JOB_NAME =~ $SELECTED_JOBS_ONLY
- if: $SELECTED_JOBS_ONLY
when: never
- if: $QUBES_JOBS == "true" && $CI_COMMIT_REF_PROTECTED == "true"
tags:
- qubes-hw2
.zen2-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,04:00.0"
SUT_ADDR: test-1.testnet
tags:
- qubes-hw1
.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"
SUT_ADDR: test-11.testnet
tags:
- qubes-hw11
# Test jobs
build-each-commit-gcc:
extends: .test-jobs-common
variables:
CONTAINER: debian:12-x86_64
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
xilinx-smoke-dom0-x86_64-gcc-debug:
extends: .xilinx-x86_64
script:
- ./automation/scripts/xilinx-smoke-dom0-x86_64.sh ping 2>&1 | tee ${LOGFILE}
needs:
- *x86-64-test-needs
- alpine-3.18-gcc-debug
xilinx-smoke-dom0-x86_64-gcc-debug-argo:
extends: .xilinx-x86_64
script:
- ./automation/scripts/xilinx-smoke-dom0-x86_64.sh argo 2>&1 | tee ${LOGFILE}
needs:
- alpine-3.18-gcc-debug
- project: xen-project/hardware/test-artifacts
job: x86_64-kernel-linux-6.6.56
ref: master
- project: xen-project/hardware/test-artifacts
job: x86_64-rootfs-alpine-3.18
ref: master
- project: xen-project/hardware/test-artifacts
job: x86_64-argo-linux-6.6.56
ref: master
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
adl-pvshim-x86-64-gcc-debug:
extends: .adl-x86-64
script:
- ./automation/scripts/qubes-x86-64.sh pvshim 2>&1 | tee ${LOGFILE}
needs:
- *x86-64-test-needs
- alpine-3.18-gcc-debug
adl-tools-tests-pv-x86-64-gcc-debug:
extends: .adl-x86-64
script:
- ./automation/scripts/qubes-x86-64.sh tools-tests-pv 2>&1 | tee ${LOGFILE}
artifacts:
reports:
junit: tests-junit.xml
needs:
- *x86-64-test-needs
- alpine-3.18-gcc-debug
adl-tools-tests-pvh-x86-64-gcc-debug:
extends: .adl-x86-64
script:
- ./automation/scripts/qubes-x86-64.sh tools-tests-pvh 2>&1 | tee ${LOGFILE}
artifacts:
reports:
junit: tests-junit.xml
needs:
- *x86-64-test-needs
- alpine-3.18-gcc-debug
zen2-smoke-x86-64-gcc-debug:
extends: .zen2-x86-64
script:
- ./automation/scripts/qubes-x86-64.sh 2>&1 | tee ${LOGFILE}
needs:
- *x86-64-test-needs
- alpine-3.18-gcc-debug
zen2-suspend-x86-64-gcc-debug:
extends: .zen2-x86-64
script:
- ./automation/scripts/qubes-x86-64.sh s3 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
zen3p-pvshim-x86-64-gcc-debug:
extends: .zen3p-x86-64
script:
- ./automation/scripts/qubes-x86-64.sh pvshim 2>&1 | tee ${LOGFILE}
needs:
- *x86-64-test-needs
- alpine-3.18-gcc-debug
zen3p-tools-tests-pv-x86-64-gcc-debug:
extends: .zen3p-x86-64
script:
- ./automation/scripts/qubes-x86-64.sh tools-tests-pv 2>&1 | tee ${LOGFILE}
artifacts:
reports:
junit: tests-junit.xml
needs:
- *x86-64-test-needs
- alpine-3.18-gcc-debug
zen3p-tools-tests-pvh-x86-64-gcc-debug:
extends: .zen3p-x86-64
script:
- ./automation/scripts/qubes-x86-64.sh tools-tests-pvh 2>&1 | tee ${LOGFILE}
artifacts:
reports:
junit: tests-junit.xml
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-smoke-x86-64
script:
- ./automation/scripts/qemu-smoke-x86-64.sh pv 2>&1 | tee ${LOGFILE}
needs:
- debian-12-x86_64-gcc-debug
qemu-smoke-x86-64-clang:
extends: .qemu-smoke-x86-64
script:
- ./automation/scripts/qemu-smoke-x86-64.sh pv 2>&1 | tee ${LOGFILE}
needs:
- debian-12-x86_64-clang-debug
qemu-smoke-x86-64-gcc-pvh:
extends: .qemu-smoke-x86-64
script:
- ./automation/scripts/qemu-smoke-x86-64.sh pvh 2>&1 | tee ${LOGFILE}
needs:
- debian-12-x86_64-gcc-debug
qemu-smoke-x86-64-clang-pvh:
extends: .qemu-smoke-x86-64
script:
- ./automation/scripts/qemu-smoke-x86-64.sh pvh 2>&1 | tee ${LOGFILE}
needs:
- debian-12-x86_64-clang-debug
qemu-smoke-x86-64-gcc-efi:
extends: .qemu-smoke-x86-64
script:
- ./automation/scripts/qemu-smoke-x86-64-efi.sh pv 2>&1 | tee ${LOGFILE}
needs:
- debian-12-x86_64-gcc-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