Skip to content

Commit

Permalink
CI: Add Ubuntu 22.04 (Jammy) and 24.04 (Noble) testing
Browse files Browse the repository at this point in the history
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 <[email protected]>
Reviewed-by: Anthony PERARD <[email protected]>
Release-Acked-By: Oleksii Kurochko <[email protected]>
  • Loading branch information
andyhhp committed Jul 12, 2024
1 parent 6db222e commit 1ddc8c1
Show file tree
Hide file tree
Showing 4 changed files with 163 additions and 22 deletions.
72 changes: 72 additions & 0 deletions automation/build/ubuntu/22.04-x86_64.dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
# syntax=docker/dockerfile:1
FROM --platform=linux/amd64 ubuntu:22.04
LABEL maintainer.name="The Xen Project"
LABEL maintainer.email="[email protected]"

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
72 changes: 72 additions & 0 deletions automation/build/ubuntu/24.04-x86_64.dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
# syntax=docker/dockerfile:1
FROM --platform=linux/amd64 ubuntu:24.04
LABEL maintainer.name="The Xen Project"
LABEL maintainer.email="[email protected]"

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
39 changes: 17 additions & 22 deletions automation/gitlab-ci/build.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -605,45 +605,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
Expand Down
2 changes: 2 additions & 0 deletions automation/scripts/containerize
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,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" ;;
esac

# Use this variable to control whether root should be used
Expand Down

0 comments on commit 1ddc8c1

Please sign in to comment.