new file mode 100644
@@ -0,0 +1,72 @@
+# syntax=docker/dockerfile:1
+FROM --platform=linux/amd64 ubuntu:22.04
+LABEL maintainer.name="The Xen Project"
+LABEL maintainer.email="xen-devel@lists.xenproject.org"
+
+ENV DEBIAN_FRONTEND=noninteractive
+
+RUN <<EOF
+#!/bin/bash
+ set -e
+
+ useradd --create-home user
+
+ apt-get -y update
+
+ DEPS=(
+ # Xen
+ bison
+ build-essential
+ checkpolicy
+ clang
+ flex
+ python3-minimal
+
+ # Tools (general)
+ ca-certificates
+ git-core
+ gzip
+ patch
+ perl
+ pkg-config
+ wget
+ # libxenguest dombuilder
+ libbz2-dev
+ libzstd-dev
+ liblzo2-dev
+ liblzma-dev
+ zlib1g-dev
+ # libacpi
+ acpica-tools
+ # libxl
+ uuid-dev
+ libyajl-dev
+ # RomBIOS
+ bcc
+ bin86
+ # xentop
+ libncurses5-dev
+ # Python bindings
+ python3-dev
+ python3-setuptools
+ # Ocaml bindings/oxenstored
+ ocaml-nox
+ ocaml-findlib
+
+ # Stubdom download/extract
+ bzip2
+
+ # Qemu build
+ libglib2.0-dev
+ libpixman-1-dev
+ meson
+ ninja-build
+ python3-packaging
+ )
+
+ apt-get -y --no-install-recommends install "${DEPS[@]}"
+ rm -rf /var/lib/apt/lists/*
+EOF
+
+USER user
+WORKDIR /build
new file mode 100644
@@ -0,0 +1,72 @@
+# syntax=docker/dockerfile:1
+FROM --platform=linux/amd64 ubuntu:24.04
+LABEL maintainer.name="The Xen Project"
+LABEL maintainer.email="xen-devel@lists.xenproject.org"
+
+ENV DEBIAN_FRONTEND=noninteractive
+
+RUN <<EOF
+#!/bin/bash
+ set -e
+
+ useradd --create-home user
+
+ apt-get -y update
+
+ DEPS=(
+ # Xen
+ bison
+ build-essential
+ checkpolicy
+ clang
+ flex
+ python3-minimal
+
+ # Tools (general)
+ ca-certificates
+ git-core
+ gzip
+ patch
+ perl
+ pkg-config
+ wget
+ # libxenguest dombuilder
+ libbz2-dev
+ libzstd-dev
+ liblzo2-dev
+ liblzma-dev
+ zlib1g-dev
+ # libacpi
+ acpica-tools
+ # libxl
+ uuid-dev
+ libyajl-dev
+ # RomBIOS
+ bcc
+ bin86
+ # xentop
+ libncurses5-dev
+ # Python bindings
+ python3-dev
+ python3-setuptools
+ # Ocaml bindings/oxenstored
+ ocaml-nox
+ ocaml-findlib
+
+ # Stubdom download/extract
+ bzip2
+
+ # Qemu build
+ libglib2.0-dev
+ libpixman-1-dev
+ meson
+ ninja-build
+ python3-packaging
+ )
+
+ apt-get -y --no-install-recommends install "${DEPS[@]}"
+ rm -rf /var/lib/apt/lists/*
+EOF
+
+USER user
+WORKDIR /build
@@ -608,45 +608,40 @@ ubuntu-16.04-x86_64-gcc-debug:
variables:
CONTAINER: ubuntu:16.04-x86_64
-ubuntu-18.04-x86_64-clang:
- extends: .clang-x86-64-build
- variables:
- CONTAINER: ubuntu:18.04-x86_64
-
-ubuntu-18.04-x86_64-clang-debug:
- extends: .clang-x86-64-build-debug
- variables:
- CONTAINER: ubuntu:18.04-x86_64
-
ubuntu-18.04-x86_64-gcc:
extends: .gcc-x86-64-build
variables:
CONTAINER: ubuntu:18.04-x86_64
-ubuntu-18.04-x86_64-gcc-debug:
- extends: .gcc-x86-64-build-debug
- variables:
- CONTAINER: ubuntu:18.04-x86_64
-
ubuntu-20.04-x86_64-gcc:
extends: .gcc-x86-64-build
variables:
CONTAINER: ubuntu:20.04-x86_64
-ubuntu-20.04-x86_64-gcc-debug:
- extends: .gcc-x86-64-build-debug
+ubuntu-22.04-x86_64-gcc:
+ extends: .gcc-x86-64-build
variables:
- CONTAINER: ubuntu:20.04-x86_64
+ CONTAINER: ubuntu:22.04-x86_64
-ubuntu-20.04-x86_64-clang:
+ubuntu-24.04-x86_64-clang:
extends: .clang-x86-64-build
variables:
- CONTAINER: ubuntu:20.04-x86_64
+ CONTAINER: ubuntu:24.04-x86_64
-ubuntu-20.04-x86_64-clang-debug:
+ubuntu-24.04-x86_64-clang-debug:
extends: .clang-x86-64-build-debug
variables:
- CONTAINER: ubuntu:20.04-x86_64
+ CONTAINER: ubuntu:24.04-x86_64
+
+ubuntu-24.04-x86_64-gcc:
+ extends: .gcc-x86-64-build
+ variables:
+ CONTAINER: ubuntu:24.04-x86_64
+
+ubuntu-24.04-x86_64-gcc-debug:
+ extends: .gcc-x86-64-build-debug
+ variables:
+ CONTAINER: ubuntu:24.04-x86_64
opensuse-leap-15.6-clang:
extends: .clang-x86-64-build
@@ -55,6 +55,8 @@ case "_${CONTAINER}" in
_xenial) CONTAINER="${BASE}/ubuntu:16.04-x86_64" ;;
_bionic) CONTAINER="${BASE}/ubuntu:18.04-x86_64" ;;
_focal) CONTAINER="${BASE}/ubuntu:20.04-x86_64" ;;
+ _jammy) CONTAINER="${BASE}/ubuntu:22.04-x86_64" ;;
+ _noble) CONTAINER="${BASE}/ubuntu:24.04-x86_64" ;;
*) guess_container ;;
esac
The containers are exactly as per 20.04 (Focal). However, this now brings us to 5 releases * 4 build jobs worth of Ubuntu testing, which is overkill. The oldest and newest toolchains are the most likely to find problems with new code, so reduce the middle 3 releases (18/20/22) to just a single smoke test each. Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com> --- CC: Anthony PERARD <anthony.perard@vates.tech> CC: Juergen Gross <jgross@suse.com> CC: Roger Pau Monné <roger.pau@citrix.com> CC: Jan Beulich <JBeulich@suse.com> CC: Stefano Stabellini <sstabellini@kernel.org> CC: Julien Grall <julien@xen.org> CC: Oleksii Kurochko <oleksii.kurochko@gmail.com> CC: Shawn Anastasio <sanastasio@raptorengineering.com> Pipeline run showing all Ubuntu testing on staging: https://gitlab.com/xen-project/people/andyhhp/xen/-/pipelines/1371106799 There are 11 jobs in total. --- .../build/ubuntu/22.04-x86_64.dockerfile | 72 +++++++++++++++++++ .../build/ubuntu/24.04-x86_64.dockerfile | 72 +++++++++++++++++++ automation/gitlab-ci/build.yaml | 39 +++++----- automation/scripts/containerize | 2 + 4 files changed, 163 insertions(+), 22 deletions(-) create mode 100644 automation/build/ubuntu/22.04-x86_64.dockerfile create mode 100644 automation/build/ubuntu/24.04-x86_64.dockerfile base-commit: d46e4264c3fa68974fbb9b1bce514ea44af6d945 prerequisite-patch-id: b6875ad0bbd279067fdef31b9adf67e2a5abdf8a prerequisite-patch-id: 5d4a01a02e7694939cdbf620a2e7509fee49dd92 prerequisite-patch-id: 65ecea93b1a320219deb8670264c3d464e00384e prerequisite-patch-id: eb7042acce82d2bc324f8560fed3ffd57025d248 prerequisite-patch-id: 91c6663df2cfa139497e2d8b4dc17f1697f0c9f6 prerequisite-patch-id: 84c3345d580461986a3a9560735279baff21234f prerequisite-patch-id: 5d732fc5f039fb25f7177279f63019f59acae4b1 prerequisite-patch-id: dd5006da276abc0e4da1ecb2c84d699c5bd98124 prerequisite-patch-id: 7e816655cd1066b42be5fa57a832c777c9867fc9 prerequisite-patch-id: fc25cefbee4cb69703df5c1f5b3eb317f03952af prerequisite-patch-id: 531b3db898f54c05bff5fbcb69e0f7f62811c744 prerequisite-patch-id: ddb51b78aeaa2a6efe8035c39a128810c01aa822 prerequisite-patch-id: b4894b8120682429e1a74369c6b36bbbdc09d749 prerequisite-patch-id: c002530cb86a08b38980779a3d06cf491fdb9fae