Bug 1824856 - import docker image definitions from firefox-android. r=hneiva,releng-reviewers,jmaher,owlish,geckoview-reviewers,nalexander

This switches the android-components docker image to a debian 12 base,
although it could maybe stay on ubuntu 22.04 instead.

Since commit
ac9107b988,
application-services builds using an ubuntu 22.04 image, and android-components
consumes the nimbus-fml binary built from that, so running on debian 11 fails
due to an older libc.

Because pip in debian 12 refuses to work outside a virtualenv, pass
`--break-system-packages` to silence the error.

Differential Revision: https://phabricator.services.mozilla.com/D201418
This commit is contained in:
Julien Cristau 2023-07-20 16:07:12 +02:00
parent 1f383843fb
commit 5c63c397b6
5 changed files with 64 additions and 105 deletions

View file

@ -1,35 +0,0 @@
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
ARG DOCKER_IMAGE_PARENT
FROM $DOCKER_IMAGE_PARENT
VOLUME /builds/worker/checkouts
# Install Java 8 needed for Nexus
RUN apt-get update -qq \
&& apt-get install -y openjdk-8-jdk \
&& apt-get clean
# Install Sonatype Nexus. Cribbed directly from
# https://github.com/sonatype/docker-nexus/blob/0415e54b6c824d510f883e5a75c4008b936eca62/oss/Dockerfile.
ENV NEXUS_ARCHIVE='nexus-bundle.tar.gz' \
NEXUS_ROOT='/opt/sonatype/nexus' \
NEXUS_SHA1SUM=0fcb4f002eec0cbad6b421b90a8fe99959d78e93 \
NEXUS_VERSION=2.15.1-02 \
NEXUS_WORK=/builds/worker/workspace/nexus
RUN mkdir -p "$NEXUS_ROOT" \
&& chown -R worker:worker "$NEXUS_ROOT"
USER worker:worker
RUN $CURL --output "$NEXUS_ARCHIVE" "https://download.sonatype.com/nexus/oss/nexus-${NEXUS_VERSION}-bundle.tar.gz" \
&& echo "$NEXUS_SHA1SUM $NEXUS_ARCHIVE" | sha1sum --check \
&& tar xzvf "$NEXUS_ARCHIVE" --strip-components=1 --directory="$NEXUS_ROOT" \
&& rm "$NEXUS_ARCHIVE"
# run-task expects to run as root
USER root

View file

@ -1,65 +0,0 @@
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
FROM ubuntu:22.04
# Add worker user
RUN mkdir /builds && \
useradd -d /builds/worker -s /bin/bash -m worker && \
chown worker:worker /builds/worker && \
mkdir /builds/worker/artifacts && \
chown worker:worker /builds/worker/artifacts
WORKDIR /builds/worker/
#----------------------------------------------------------------------------------------------------------------------
#-- Configuration -----------------------------------------------------------------------------------------------------
#----------------------------------------------------------------------------------------------------------------------
ENV CURL='curl --location --retry 5' \
GRADLE_OPTS='-Xmx4096m -Dorg.gradle.daemon=false -Dorg.gradle.parallel=false' \
LANG='en_US.UTF-8' \
TERM='dumb'
#----------------------------------------------------------------------------------------------------------------------
#-- System ------------------------------------------------------------------------------------------------------------
#----------------------------------------------------------------------------------------------------------------------
RUN apt-get update -qq \
# We need to install tzdata before all of the other packages. Otherwise it will show an interactive dialog
# which we cannot navigate while building the Docker image.
&& apt-get install -y tzdata \
&& apt-get install -y openjdk-17-jdk \
wget \
expect \
git \
curl \
python3 \
python3-pip \
python3-yaml \
libgit2-dev \
locales \
unzip \
mercurial \
&& apt-get clean
RUN pip3 install --upgrade pip
RUN pip3 install taskcluster
RUN locale-gen "$LANG"
# %include-run-task
ENV SHELL=/bin/bash \
HOME=/builds/worker \
PATH=/builds/worker/.local/bin:$PATH
VOLUME /builds/worker/checkouts
VOLUME /builds/worker/.cache
# run-task expects to run as root
USER root

View file

@ -245,3 +245,9 @@ jobs:
args:
SNAP_BASE: core22
SNAP_LIST: "gnome-42-2204 gtk-common-themes gnome-42-2204-sdk"
android-components:
symbol: I(android-components)
parent: debian12-base
android-ui-tests:
symbol: I(android-ui-tests)
parent: android-components

View file

@ -0,0 +1,55 @@
FROM $DOCKER_IMAGE_PARENT
MAINTAINER Geoff Brown <gbrown@mozilla.com>
VOLUME /builds/worker/checkouts
VOLUME /builds/worker/workspace
VOLUME /builds/worker/tooltool-cache
ENV CURL='curl --location --retry 5' \
GRADLE_OPTS='-Xmx4096m -Dorg.gradle.daemon=false -Dorg.gradle.parallel=false' \
LANG='en_US.UTF-8' \
TERM='dumb'
# rsync is required for l10n single locale repacks. less, screen, and
# vim, help debugging interactive tasks in Task Cluster.
# git and openssh-client are used to upload GeckoView javadoc to Github.
# yaml required by some ui-test tasks
RUN apt-get update && \
apt-get install \
autoconf2.13 \
build-essential \
base-files \
ccache \
cmake \
curl \
file \
gnupg \
jq \
less \
locales \
openjdk-17-jdk \
openssh-client \
procps \
python3-dev \
python3-pip \
python3-yaml \
rsync \
screen \
sudo \
tar \
unzip \
uuid \
valgrind \
vim \
x11-utils \
xvfb \
wget \
zip \
zstd
RUN pip3 install --break-system-packages taskcluster
RUN locale-gen "$LANG"
# Back to the workdir, matching desktop-build.
WORKDIR /builds/worker

View file

@ -8,8 +8,7 @@ LABEL maintainer="Richard Pappalardo <rpappalax@gmail.com>"
#-- Test tools --------------------------------------------------------------------------------------------------------
#----------------------------------------------------------------------------------------------------------------------
RUN apt-get install -y jq \
&& apt-get clean
RUN chown -R worker:worker ${HOME}/.config
USER worker:worker
@ -34,11 +33,10 @@ RUN URL_FLANK_BIN="$($CURL --silent 'https://api.github.com/repos/Flank/flank/re
&& chmod +x "${TEST_TOOLS}/flank.jar"
# Used in parse-ui-test-fromfile.py
RUN pip3 install junitparser
RUN pip3 install beautifultable
RUN pip3 install --break-system-packages junitparser beautifultable
# Used for env var ingest in testrail.py
RUN pip3 install python-dotenv
RUN pip3 install --break-system-packages python-dotenv
# run-task expects to run as root
USER root