CI: Switch qemu-arm* jobs to using the distro provided QEMU

This removes qemu-system-aarch64-6.0.0-*-export and fixes the outstanding
TODOs about efi-virtio.rom, now that the QEMU in use has it's /usr/share/
properly packaged.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Reviewed-by: Michal Orzel <michal.orzel@amd.com>
This commit is contained in:
Andrew Cooper committed 2026-05-29 23:13:02 +01:00
1 parent eac95d129d
commit 3c0c177ff9
8 files changed
+10 -133

No files matched your search

-33
View File
@@ -266,39 +266,6 @@
variables:
<<: *gcc
## Test artifacts common
.test-jobs-artifact-common:
stage: build
needs: []
rules:
- if: $CI_JOB_NAME =~ $SELECTED_JOBS_ONLY
when: on_success
# Arm test artifacts
qemu-system-aarch64-6.0.0-arm64-export:
extends: .test-jobs-artifact-common
image: registry.gitlab.com/xen-project/xen/tests-artifacts/qemu-system-aarch64:6.0.0-arm64v8
script:
- mkdir binaries && cp /qemu-system-aarch64 binaries/qemu-system-aarch64
artifacts:
paths:
- binaries/qemu-system-aarch64
tags:
- arm64
qemu-system-aarch64-6.0.0-arm32-export:
extends: .test-jobs-artifact-common
image: registry.gitlab.com/xen-project/xen/tests-artifacts/qemu-system-aarch64:6.0.0-arm64v8
script:
- mkdir binaries && cp /qemu-system-arm binaries/qemu-system-arm
artifacts:
paths:
- binaries/qemu-system-arm
tags:
- arm64
# Jobs below this line
# Build jobs needed for tests
-2
View File
@@ -12,7 +12,6 @@
- project: $ARTIFACTS_REPO
job: alpine-3.18-arm64-rootfs
ref: $ARTIFACTS_BRANCH
- qemu-system-aarch64-6.0.0-arm64-export
.arm32-test-needs: &arm32-test-needs
# Bodge to ensure binaries/ is non-root. Can be any artefact which comes
@@ -21,7 +20,6 @@
- project: $ARTIFACTS_REPO
job: microcode-x86
ref: $ARTIFACTS_BRANCH
- qemu-system-aarch64-6.0.0-arm32-export
.x86-64-test-needs: &x86-64-test-needs
- project: $ARTIFACTS_REPO
+2 -5
View File
@@ -7,7 +7,7 @@
function xtf_arch_prepare()
{
export FW_PREFIX="${FW_PREFIX:-/usr/lib/u-boot/qemu_arm64/}"
export QEMU_PREFIX="${QEMU_PREFIX:-${WORKDIR}/}"
export QEMU_PREFIX="${QEMU_PREFIX:-}"
export XEN_BINARY="${XEN_BINARY:-${WORKDIR}/xen}"
export XEN_CMDLINE="${XEN_CMDLINE:-loglvl=all noreboot console_timestamps=boot console=dtuart}"
export XTF_SRC_BRANCH="${XTF_SRC_BRANCH:-xtf-arm}"
@@ -18,9 +18,6 @@ function xtf_arch_prepare()
# Perform arch-specific XTF environment setup.
function xtf_arch_setup()
{
# QEMU looks for "efi-virtio.rom" even if it is unneeded
curl -fsSLO https://github.com/qemu/qemu/raw/v5.2.0/pc-bios/efi-virtio.rom
# Crude check for local testing
if [ ! -d imagebuilder ]; then
git clone --depth 1 https://gitlab.com/xen-project/imagebuilder.git
@@ -47,7 +44,7 @@ EOF
cp ${XTF_BINARY} ${WORKDIR}/xtf-test
# Generate virt-gicv2.dtb
${WORKDIR}/qemu-system-aarch64 \
${QEMU_PREFIX}qemu-system-aarch64 \
-machine virtualization=true \
-cpu cortex-a57 \
-machine type=virt \
+2 -4
View File
@@ -39,9 +39,7 @@ cp ../zImage ./root
find . | cpio -R 0:0 -H newc -o | gzip > ../initrd.gz
cd ..
# XXX QEMU looks for "efi-virtio.rom" even if it is unneeded
curl -fsSLO https://github.com/qemu/qemu/raw/v5.2.0/pc-bios/efi-virtio.rom
./qemu-system-arm \
qemu-system-arm \
-machine virt \
-machine virtualization=true \
-smp 4 \
@@ -77,7 +75,7 @@ git clone --depth 1 https://gitlab.com/xen-project/imagebuilder.git
bash imagebuilder/scripts/uboot-script-gen -t tftp -d . -c config
rm -f ${serial_log}
export TEST_CMD="./qemu-system-arm \
export TEST_CMD="qemu-system-arm \
-machine virt \
-machine virtualization=true \
-smp 4 \
+2 -4
View File
@@ -57,9 +57,7 @@ chmod +x etc/local.d/xen.start
find . | cpio -R 0:0 -H newc -o | gzip >> ../dom0-rootfs.cpio.gz
cd ../..
# XXX QEMU looks for "efi-virtio.rom" even if it is unneeded
curl -fsSLO https://github.com/qemu/qemu/raw/v5.2.0/pc-bios/efi-virtio.rom
./binaries/qemu-system-aarch64 \
qemu-system-aarch64 \
-machine virtualization=true \
-cpu cortex-a57 -machine type=virt \
-m 2048 -smp 2 -display none \
@@ -90,7 +88,7 @@ bash imagebuilder/scripts/uboot-script-gen -t tftp -d binaries/ -c binaries/conf
# Run the test
rm -f smoke.serial
export TEST_CMD="./binaries/qemu-system-aarch64 \
export TEST_CMD="qemu-system-aarch64 \
-machine virtualization=true \
-cpu cortex-a57 -machine type=virt \
-m 2048 -monitor none -serial stdio \
@@ -78,9 +78,7 @@ chmod +x init
find . | cpio -R 0:0 -H newc -o | gzip > ../initrd.gz
cd ..
# XXX QEMU looks for "efi-virtio.rom" even if it is unneeded
curl -fsSLO https://github.com/qemu/qemu/raw/v5.2.0/pc-bios/efi-virtio.rom
./qemu-system-arm \
qemu-system-arm \
-machine virt \
-machine virtualization=true \
-smp 4 \
@@ -130,7 +128,7 @@ bash imagebuilder/scripts/uboot-script-gen -t tftp -d . -c config
# Run the test
rm -f ${serial_log}
export TEST_CMD="./qemu-system-arm \
export TEST_CMD="qemu-system-arm \
-machine virt \
-machine virtualization=true \
-smp 4 \
@@ -78,9 +78,7 @@ if [[ "${test_variant}" == "gicv3" ]]; then
domU_check="echo \"${passed}\""
fi
# XXX QEMU looks for "efi-virtio.rom" even if it is unneeded
curl -fsSLO https://github.com/qemu/qemu/raw/v5.2.0/pc-bios/efi-virtio.rom
./binaries/qemu-system-aarch64 \
qemu-system-aarch64 \
-machine virtualization=true \
-cpu cortex-a57 -machine type=virt,gic-version=$gic_version \
-m 2048 -smp 2 -display none \
@@ -203,7 +201,7 @@ bash imagebuilder/scripts/uboot-script-gen -t tftp -d binaries/ -c binaries/conf
# Run the test
rm -f smoke.serial
export TEST_CMD="./binaries/qemu-system-aarch64 \
export TEST_CMD="qemu-system-aarch64 \
-machine virtualization=true \
-cpu cortex-a57 -machine type=virt,gic-version=$gic_version \
-m 2048 -monitor none -serial stdio \
@@ -1,77 +0,0 @@
# syntax=docker/dockerfile:1
FROM --platform=linux/arm64/v8 debian:bookworm
LABEL maintainer.name="The Xen Project" \
maintainer.email="xen-devel@lists.xenproject.org"
ENV DEBIAN_FRONTEND=noninteractive
ENV QEMU_VERSION=6.0.0
ENV USER root
RUN mkdir /build
WORKDIR /build
# build depends
RUN apt-get update && \
apt-get --quiet --yes install \
build-essential \
curl \
python3 \
ninja-build \
pkg-config \
libglib2.0-dev \
libpixman-1-dev \
&& \
\
curl -fsSLO https://download.qemu.org/qemu-"$QEMU_VERSION".tar.xz && \
tar xvJf qemu-"$QEMU_VERSION".tar.xz && \
cd qemu-"$QEMU_VERSION" && \
./configure \
--target-list=arm-softmmu,aarch64-softmmu \
--enable-system \
--disable-blobs \
--disable-bsd-user \
--disable-debug-info \
--disable-glusterfs \
--disable-gtk \
--disable-guest-agent \
--disable-linux-user \
--disable-sdl \
--disable-spice \
--disable-tpm \
--disable-vhost-net \
--disable-vhost-scsi \
--disable-vhost-user \
--disable-vhost-vsock \
--disable-virtfs \
--disable-vnc \
--disable-werror \
--disable-xen \
--disable-safe-stack \
--disable-libssh \
--disable-opengl \
--disable-tools \
--disable-virglrenderer \
--disable-stack-protector \
--disable-containers \
--disable-replication \
--disable-cloop \
--disable-dmg \
--disable-vvfat \
--disable-vdi \
--disable-parallels \
--disable-qed \
--disable-bochs \
--disable-qom-cast-debug \
--disable-vhost-vdpa \
--disable-vhost-kernel \
--disable-qcow1 \
--disable-live-block-migration \
&& \
make -j$(nproc) && \
cp ./build/qemu-system-aarch64 / && \
cp ./build/qemu-system-arm / && \
cd /build && \
rm -rf qemu-"$QEMU_VERSION"* && \
apt-get autoremove -y && \
apt-get clean && \
rm -rf /var/lib/apt/lists* /tmp/* /var/tmp/*
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.