subsurface/scripts/docker/android-build-container/Dockerfile
=Michael Keller a83349015a CICD: Improve the GitHub Actions for Linux.
Do a few things:
- add a build for Debian trixie (as discussed in #4182);
- add a build for Ubuntu 24.04;
- rename the build definitions to match the build names;
- update the artifact uploads to use a non-deprecated version of the
  action, and name the artifact appropriately;
- remove a stale workflow file.

Signed-off-by: Michael Keller <github@ike.ch>
2024-05-11 12:51:33 +12:00

100 lines
2.6 KiB
Docker

FROM ubuntu:22.04 as base
RUN apt-get update && \
apt-get dist-upgrade -y && \
apt-get install -y \
unzip \
git \
cmake \
autoconf \
libtool-bin \
openjdk-8-jdk \
wget && \
apt-get clean
FROM base as build
WORKDIR /android
# Scrape the manually curated Qt install from the previous build image
COPY --from=subsurface/android-build-container:5.15.1 /android/5.15.1 5.15.1
# install, NDK and SDK there, plus the three files from the Subsurface
# sources that we need to get the prep routines to run
RUN wget https://dl.google.com/android/repository/commandlinetools-linux-6858069_latest.zip && \
unzip commandlinetools-linux-*.zip
ADD android-build-setup.sh variables.sh .
# run the build setup
RUN bash -x android-build-setup.sh
# clean up the files that we don't need to keep the container smaller
RUN rm -rf \
5*/android/lib/*x86* \
5*/android/doc \
5*/android/include/QtHelp \
5*/android/include/QtFbSupport \
5*/android/include/QtFontDatabaseSupport \
5*/android/include/QtNfc \
5*/android/include/QtPrintSupport \
5*/android/include/QtTest \
5*/android/include/QtXml \
5*/android/plugins/geoservices/libqtgeoservices_mapboxgl.so \
5*/android/lib/cmake/Qt5Test/Qt5TestConfig.cmake \
commandlinetools-linux-*.zip \
$( find platforms -name arch-mips -o -name arch-x86 ) \
toolchains/x86-* android-ndk*/toolchains/llvm/prebuilt/x86-* \
platforms/android-[12][2345678] \
platforms/android-21/arch-x86_64 \
ndk/*/sources/cxx-stl/llvm-libc++/libs/x* \
ndk/*/sources/cxx-stl/llvm-libc++/libs/*/*static* \
ndk/*/sources/cxx-stl/llvm-libc++/test \
ndk/*/sources/cxx-stl/llvm-libc++/utils \
ndk/*/sources/cxx-stl/llvmlibc++abi \
ndk/*/sources/cxx-stl/system \
ndk/*/sources/third_party \
ndk/*/sysroot/usr/lib \
build-tools/*/renderscript \
platform-tools/systrace \
tools/lib \
tools/proguard \
tools/support \
emulator \
platform-tools-2 \
variables.sh \
android-build-setup.sh \
/usr/lib/gcc
FROM base as final
RUN apt-get install -y \
autoconf \
automake \
cmake \
git \
make \
wget \
zip \
unzip \
python3 \
python3-pip \
bzip2 \
pkg-config \
libx11-xcb1 \
libgl1-mesa-glx \
libglib2.0-0 \
openjdk-8-jdk \
curl \
coreutils \
p7zip-full && \
apt-get clean
WORKDIR /android
COPY --from=build /android/ .
RUN git config --global --add safe.directory /android/subsurface && \
git config --global --add safe.directory /android/subsurface/libdivecomputer && \
git config --global --add safe.directory /android/subsurface/nightly-builds