Bug 1953584 - Build a Ubuntu 24.04 arm64 test image in CI r=releng-reviewers,jcristau

Differential Revision: https://phabricator.services.mozilla.com/D241284
This commit is contained in:
Gabriel Bustamante
2025-04-10 20:19:25 +00:00
parent 7c3e539167
commit 308105ccc2
5 changed files with 90 additions and 18 deletions

View File

@@ -120,6 +120,7 @@ treeherder:
'Ub22': 'Packages for Ubuntu 22.04'
'Ub22a64': 'AArch64 packages for Ubuntu 22.04'
'Ub24': 'Packages for Ubuntu 24.04'
'Ub24a64': 'AArch64 packages for Ubuntu 24.04'
'I': 'Docker Image Builds'
'TA': 'Toolchain builds for Android'
'TL': 'Toolchain builds for Linux 64-bits'

View File

@@ -11,6 +11,13 @@ sed -i /APT::Install-Recommends/d /etc/apt/apt.conf.d/99taskcluster
# build a list of packages to be installed and call it in one go.
apt_packages=()
ARCH="${1:-amd64}"
if [[ "$ARCH" == "amd64" ]]; then
apt_packages+=('g++-multilib')
apt_packages+=('gcc-multilib')
fi
apt_packages+=('autoconf2.13')
apt_packages+=('bluez-cups')
apt_packages+=('build-essential')
@@ -28,8 +35,6 @@ apt_packages+=('fonts-stix')
apt_packages+=('fonts-unfonts-core')
apt_packages+=('fonts-unfonts-extra')
apt_packages+=('fonts-vlgothic')
apt_packages+=('g++-multilib')
apt_packages+=('gcc-multilib')
apt_packages+=('gir1.2-gnomebluetooth-3.0')
apt_packages+=('gnome-icon-theme')
apt_packages+=('gnome-keyring')
@@ -104,23 +109,26 @@ apt-get install --allow-downgrades "${apt_packages[@]}"
# whale
sed -i 's/org.gnome.SettingsDaemon.Power;//' /usr/share/gnome-session/sessions/ubuntu.session
# Enable i386 packages
dpkg --add-architecture i386
apt-get update
if [[ "$ARCH" == "amd64" ]]; then
# Enable i386 packages
dpkg --add-architecture i386
apt-get update
# Make sure we have libraries for 32-bit tests
apt_packages=()
apt_packages+=('libavcodec-extra60:i386')
apt_packages+=('libpulse0:i386')
apt_packages+=('libxt6:i386')
apt_packages+=('libxtst6:i386')
apt_packages+=('libsecret-1-0:i386')
apt_packages+=('libgtk-3-0:i386')
apt_packages+=('libx11-xcb1:i386')
apt_packages+=('libxcb1:i386')
apt_packages+=('libasound2:i386')
# Make sure we have libraries for 32-bit tests
apt_packages=()
apt_packages+=('libavcodec-extra60:i386')
apt_packages+=('libpulse0:i386')
apt_packages+=('libxt6:i386')
apt_packages+=('libxtst6:i386')
apt_packages+=('libsecret-1-0:i386')
apt_packages+=('libgtk-3-0:i386')
apt_packages+=('libx11-xcb1:i386')
apt_packages+=('libxcb1:i386')
apt_packages+=('libasound2:i386')
apt-get install --allow-downgrades "${apt_packages[@]}"
fi
apt-get install --allow-downgrades "${apt_packages[@]}"
rm -rf /var/lib/apt/lists/*
# enable audiotestsrc plugin in pipewire config

View File

@@ -5,13 +5,14 @@
# of such recent breakages)
FROM $DOCKER_IMAGE_PARENT
ARG ARCH=amd64
ARG TASKCLUSTER_ROOT_URL
ARG DOCKER_IMAGE_PACKAGES
RUN /usr/local/sbin/setup_packages.sh $TASKCLUSTER_ROOT_URL $DOCKER_IMAGE_PACKAGES
# %include taskcluster/docker/recipes/ubuntu2404-test-system-setup-base.sh
ADD topsrcdir/taskcluster/docker/recipes/ubuntu2404-test-system-setup-base.sh /setup/system-setup.sh
RUN bash /setup/system-setup.sh
RUN bash /setup/system-setup.sh $ARCH
RUN /usr/local/sbin/clean_packages.sh $DOCKER_IMAGE_PACKAGES
# Set a default command useful for debugging

View File

@@ -109,6 +109,12 @@ tasks:
definition: debian-raw
args:
BASE_IMAGE: ubuntu:noble
ubuntu2404-arm64-raw:
symbol: I(ub24-a64-raw)
definition: debian-raw
args:
BASE_IMAGE: ubuntu:noble
arch: arm64
ubuntu2004-packages:
symbol: I(ub20-pkg)
definition: debian-packages
@@ -121,6 +127,11 @@ tasks:
symbol: I(ub24-pkg)
definition: debian-packages
parent: ubuntu2404-raw
ubuntu2404-arm64-packages:
symbol: I(ub24-a64-pkg)
definition: debian-packages
parent: ubuntu2404-arm64-raw
arch: arm64
ubuntu2004-base:
symbol: I(ub20-base)
definition: debian-base
@@ -150,12 +161,32 @@ tasks:
packages:
- ub24-mercurial
- ub24-python-zstandard
ubuntu2404-arm64-base:
symbol: I(ub24-a64-base)
definition: debian-base
parent: ubuntu2404-arm64-raw
packages:
- ub24-arm64-mercurial
- ub24-arm64-python-zstandard
arch: arm64
ubuntu2404-test-base:
symbol: I(ub24-test-base)
parent: ubuntu2404-base
ubuntu2404-arm64-test-base:
symbol: I(ub24-a64-test-base)
parent: ubuntu2404-arm64-base
definition: ubuntu2404-test-base
arch: arm64
args:
ARCH: arm64
ubuntu2404-test:
symbol: I(ub24-test)
parent: ubuntu2404-test-base
ubuntu2404-arm64-test:
symbol: I(ub24-a64-test)
parent: ubuntu2404-arm64-test-base
definition: ubuntu2404-test
arch: arm64
# Neither the debian8-*raw nor the debian8-*packages images can have
# packages dependencies.
debian8-raw:

View File

@@ -211,6 +211,20 @@ ub24-python-zstandard:
dist: noble
pre-build-command: debchange -v 0.23.0-1.ub24moz --distribution noble "Mozilla backport for noble"
ub24-arm64-python-zstandard:
worker-type: b-linux-gcp-aarch64
description: "python-zstandard for Ubuntu noble on ARM64"
treeherder:
symbol: Ub24a64(python-zstandard)
run:
tarball:
url: https://files.pythonhosted.org/packages/ed/f6/2ac0287b442160a89d726b17a9184a4c615bb5237db763791a7fd16d9df1/zstandard-0.23.0.tar.gz
sha256: b2d8c62d08e7255f68f7a740bae85b3c9b8e5466baa9cbf7f57f1cde0ac6bc09
name: python-zstandard
dist: noble
arch: arm64
pre-build-command: debchange -v 0.23.0-1.ub24moz --distribution noble "Mozilla backport for noble"
ub24-mercurial:
description: "Modern Mercurial for Ubuntu noble"
treeherder:
@@ -225,3 +239,20 @@ ub24-mercurial:
sed -i -e "s/__VERSION__/$(awk -F\" '$2 {print $2}' mercurial/__version__.py)-1.ub24moz1/" \
-e "s/__DATE__/$(date --rfc-2822)/" \
-e "s/__CODENAME__/noble/" debian/changelog
ub24-arm64-mercurial:
worker-type: b-linux-gcp-aarch64
description: "Modern Mercurial for Ubuntu noble on ARM64"
treeherder:
symbol: Ub24a64(hg)
run:
tarball:
url: https://www.mercurial-scm.org/release/mercurial-6.8.1.tar.gz
sha256: 030e8a7a6d590e4eaeb403ee25675615cd80d236f3ab8a0b56dcc84181158b05
dist: noble
arch: arm64
pre-build-command: >-
cp -r contrib/packaging/debian debian &&
sed -i -e "s/__VERSION__/$(awk -F\" '$2 {print $2}' mercurial/__version__.py)-1.ub24moz1/" \
-e "s/__DATE__/$(date --rfc-2822)/" \
-e "s/__CODENAME__/noble/" debian/changelog