We spend an awful lot of CI time building QEMU, even though most changes don't
touch the subset of tools/libs/ used by QEMU. Some numbers taken at a time
when CI was otherwise quiet:
With Without
Alpine: 13m38s 6m04s
Debian 12: 10m05s 8m10s
OpenSUSE Tumbleweed: 11m40s 7m54s
Ubuntu 24.04: 14m56s 8m06s
which is a >50% improvement in wallclock time in some cases.
The only build we have that needs QEMU is alpine-3.18-gcc-debug. This is the
build deployed and used by the QubesOS ADL-* and Zen3p-* jobs.
Xilinx-x86_64 deploys it too, but is PVH-only and doesn't use QEMU.
QEMU is also built by CirrusCI for FreeBSD (fully Clang/LLVM toolchain).
This should help quite a lot with Gitlab CI capacity.
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
extends: .gcc-x86-64-build-debug
variables:
CONTAINER: alpine:3.18
+ BUILD_QEMU_XEN: y
debian-bookworm-gcc-debug:
extends: .gcc-x86-64-build-debug
cfgargs+=("--with-extra-qemuu-configure-args=\"--disable-werror\"")
fi
- # Qemu requires Python 3.8 or later, and ninja
- # and Clang 10 or later
- if ! type python3 || ! python3 automation/scripts/qemu-deps-check.py \
- || [[ "$cc_is_clang" == y && "$cc_ver" -lt 0x0a0000 ]] \
- || ! type ninja; then
+ # QEMU is only for those who ask
+ if [[ "$BUILD_QEMU_XEN" != "y" ]]; then
cfgargs+=("--with-system-qemu=/bin/false")
fi
+++ /dev/null
-#!/usr/bin/env python3
-# -*- coding: utf-8 -*-
-import sys
-
-if sys.version_info < (3, 8):
- print("Python %d.%d.%d too old" %
- (sys.version_info.major,
- sys.version_info.minor,
- sys.version_info.micro))
- exit(1)
-
-try:
- import tomllib
-except ImportError:
- try:
- import tomli
- except ImportError:
- print("No tomli")
- exit(1)