Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ad7e7118 authored by Aayush Gupta's avatar Aayush Gupta
Browse files

Dockerfile: Upstream required image and packages



- Add a basic README
- Drop non-required packages from sdkmanager text file

Signed-off-by: Aayush Gupta's avatarAayush Gupta <theimpulson@e.email>
parent 9370f2b6
Loading
Loading
Loading
Loading
Loading
+32 −30
Original line number Diff line number Diff line
FROM ubuntu:18.04
FROM ubuntu:20.04

ENV VERSION_SDK_TOOLS "4333796"
ENV VERSION_GRADLE "gradle-6.6"
# Global Gradle arguments
ARG GRADLE_VERSION="7.0.2"
ARG GRADLE_DIST=bin
ARG GRADLE_HOME="/gradle"
ARG GRADLE_PATH="${GRADLE_HOME}/gradle-${GRADLE_VERSION}/bin"

# Global Android SDK arguments and environment variables
ARG ANDROID_SDK_VERSION=7302050
ENV ANDROID_SDK_ROOT "/sdk"
ENV ANDROID_HOME "/sdk"
ENV ANDROID_CMDLINE_TOOLS_BIN "${ANDROID_SDK_ROOT}/cmdline-tools/tools/bin"
ENV GRADLE_HOME "/gradle"
ENV GRADLE_PATH "${GRADLE_HOME}/${VERSION_GRADLE}/bin"
ENV PATH "$PATH:${ANDROID_SDK_ROOT}/tools:${ANDROID_SDK_ROOT}/ndk-bundle:${GRADLE_PATH}"
ENV DEBIAN_FRONTEND noninteractive
ARG ANDROID_CMDLINE_TOOLS_BIN="${ANDROID_SDK_ROOT}/cmdline-tools/tools/bin"

# Add Gradle and SDK tools to the PATH
ENV PATH "$PATH:${ANDROID_CMDLINE_TOOLS_BIN}/:${GRADLE_PATH}/:${ANDROID_HOME}/emulator/:${ANDROID_HOME}/platform-tools/"

COPY sha256sum.txt .
# Setup distribution and install required distribution packages
ARG JDK_VERSION=11
ENV DEBIAN_FRONTEND noninteractive

RUN dpkg --print-architecture && \
	dpkg --print-foreign-architectures
@@ -23,7 +29,7 @@ RUN apt-get -qq update && \
    apt-get install -qqy --no-install-recommends \
      curl \
      git-core \
      openjdk-8-jdk \
      openjdk-${JDK_VERSION}-jdk \
      libc6-i386 \
      libstdc++6:i386 \
      zlib1g:i386 \
@@ -34,6 +40,7 @@ RUN apt-get -qq update && \
      automake \
      libtool \
      pkg-config \
      wget \
      gcc \
      libsonic-dev \
      libpcaudio-dev \
@@ -45,28 +52,23 @@ ENV LANG en_US.UTF-8
RUN rm -f /etc/ssl/certs/java/cacerts; \
    /var/lib/dpkg/info/ca-certificates-java.postinst configure

RUN curl -s https://dl.google.com/android/repository/sdk-tools-linux-${VERSION_SDK_TOOLS}.zip > /sdk.zip && \
    sha256sum -c sha256sum.txt && \
    mkdir -p /sdk/cmdline-tools && \
    unzip /sdk.zip -d /sdk/cmdline-tools && \
    rm -v /sdk.zip sha256sum.txt
# Download and install SDK command-line tools
RUN mkdir -p ${ANDROID_SDK_ROOT}/cmdline-tools && \
    wget -q https://dl.google.com/android/repository/commandlinetools-linux-${ANDROID_SDK_VERSION}_latest.zip && \
    unzip *tools*linux*.zip -d ${ANDROID_SDK_ROOT}/cmdline-tools && \
    mv ${ANDROID_SDK_ROOT}/cmdline-tools/cmdline-tools ${ANDROID_SDK_ROOT}/cmdline-tools/tools && \
    rm *tools*linux*.zip

RUN mkdir -p $ANDROID_SDK_ROOT/licenses/ \
   && echo "8933bad161af4178b1185d1a37fbf41ea5269c55\nd56f5187479451eabf01fb78af6dfcb131a6481e\n24333f8a63b6825ea9c5514f83c2829b004d1fee" > $ANDROID_SDK_ROOT/licenses/android-sdk-license \
   && echo "84831b9409646a918e30573bab4c9c91346d8abd\n504667f4c0de7af1a06de9f4b1727b84351f2910" > $ANDROID_SDK_ROOT/licenses/android-sdk-preview-license \
   && yes | ${ANDROID_CMDLINE_TOOLS_BIN}/sdkmanager --sdk_root=${ANDROID_SDK_ROOT} --licenses >/dev/null

ADD packages.txt /sdk
RUN mkdir -p /root/.android && \
  touch /root/.android/repositories.cfg && \
  ${ANDROID_CMDLINE_TOOLS_BIN}/sdkmanager --sdk_root=${ANDROID_SDK_ROOT} --update

RUN ${ANDROID_CMDLINE_TOOLS_BIN}/sdkmanager --sdk_root=${ANDROID_SDK_ROOT} --update
RUN yes | ${ANDROID_CMDLINE_TOOLS_BIN}/sdkmanager --licenses

RUN while read -r package; do PACKAGES="${PACKAGES}${package} "; done < /sdk/packages.txt && \
    ${ANDROID_CMDLINE_TOOLS_BIN}/sdkmanager --sdk_root=${ANDROID_SDK_ROOT} ${PACKAGES}
RUN mkdir -p /root/.android \
 && touch /root/.android/repositories.cfg \
 && sdkmanager --verbose --update

RUN yes | ${ANDROID_CMDLINE_TOOLS_BIN}/sdkmanager --licenses
ADD packages.txt /sdk
RUN sdkmanager --verbose --package_file=/sdk/packages.txt

RUN curl -s https://downloads.gradle-dn.com/distributions/${VERSION_GRADLE}-bin.zip > /gradle.zip && \
# Download and install Gradle
# Keep it aligned default version as given in https://developer.android.com/studio/releases/gradle-plugin#versioning-update
RUN curl -s https://downloads.gradle-dn.com/distributions/gradle-${GRADLE_VERSION}-${GRADLE_DIST}.zip > /gradle.zip && \
    unzip -q /gradle.zip -d /gradle

README.md

0 → 100644
+9 −0
Original line number Diff line number Diff line
# docker-android-apps-cicd

docker-android-apps-cicd is an open-source fork of [gitlab-ci-android](https://github.com/jangrewe/gitlab-ci-android) adapted as per the requirements of the */e/* internal development team to develop and maintain projects which are built using GitLab's CI/CD. This project aims to offers a complete environment containing required tools to build Android applications.

## Development

- A the list of contributors can be viewed on this repository's [contributors graph](https://gitlab.e.foundation/e/apps/docker-android-apps-cicd/-/graphs/master).

In case you wish to contribute to the development of this project, feel free to open a [Merge Request](https://gitlab.e.foundation/e/apps/docker-android-apps-cicd/-/merge_requests) or an [Issue](https://gitlab.e.foundation/e/backlog/-/issues/) for the same. Contributions are always welcome.
 No newline at end of file
+2 −14
Original line number Diff line number Diff line
build-tools;27.0.3
build-tools;28.0.3
build-tools;29.0.3
extras;android;m2repository
extras;m2repository;com;android;support;constraint;constraint-layout;1.0.2
extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.2
platform-tools
platforms;android-29
platforms;android-28
platforms;android-27
tools
ndk-bundle
emulator
patcher;v4
build-tools;30.0.3
platforms;android-30
 No newline at end of file

sha256sum.txt

deleted100644 → 0
+0 −1
Original line number Diff line number Diff line
92ffee5a1d98d856634e8b71132e8a95d96c83a63fde1099be3d86df3106def9 /sdk.zip