Skip to content

Commit

Permalink
Add android-34
Browse files Browse the repository at this point in the history
  • Loading branch information
nprail committed Aug 31, 2024
1 parent 3006514 commit 870c39a
Show file tree
Hide file tree
Showing 2 changed files with 156 additions and 0 deletions.
10 changes: 10 additions & 0 deletions .github/workflows/docker-publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,16 @@ jobs:
labels: ${{ steps.meta.outputs.labels }}
cache-from: type=gha
cache-to: type=gha,mode=max
- name: Build and push Docker image 34
id: build-and-push
uses: docker/build-push-action@ac9327eae2b366085ac7f6a2d02df8aa8ead720a
with:
context: android/34-node
push: ${{ github.event_name != 'pull_request' }}
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
cache-from: type=gha
cache-to: type=gha,mode=max


# Sign the resulting Docker image digest except on PRs.
Expand Down
146 changes: 146 additions & 0 deletions android/34-node/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,146 @@
FROM openjdk:17-jdk-slim

# Make APT non-interactive
RUN echo 'APT::Get::Assume-Yes "true";' > /etc/apt/apt.conf.d/99semaphore
RUN echo 'DPkg::Options "--force-confnew";' >> /etc/apt/apt.conf.d/99semaphore
RUN echo 'Acquire::Check-Valid-Until no;' >> /etc/apt/apt.conf
RUN if grep -q jessie /etc/apt/sources.list ;then echo 'deb http://cdn-fastly.deb.debian.org/debian/ jessie main'>/etc/apt/sources.list; echo 'deb-src http://cdn-fastly.deb.debian.org/debian/ jessie main'>>/etc/apt/sources.list; echo 'deb http://security.debian.org/ jessie/updates main'>>/etc/apt/sources.list;echo 'deb-src http://security.debian.org/ jessie/updates main'>>/etc/apt/sources.list; echo 'deb http://archive.debian.org/debian jessie-backports main'>>/etc/apt/sources.list; echo 'deb-src http://archive.debian.org/debian jessie-backports main'>>/etc/apt/sources.list;fi
ENV DEBIAN_FRONTEND=noninteractive

# Install Packages
RUN mkdir -p /usr/share/man/man1
RUN apt-get update
RUN apt-get install -y \
git \
mercurial \
xvfb \
vim \
apt \
locales \
sudo \
apt-transport-https \
ca-certificates \
openssh-client \
software-properties-common \
build-essential \
tar \
lsb-release \
gzip \
parallel \
net-tools \
netcat \
unzip \
zip \
bzip2 \
lftp \
gnupg \
curl \
wget \
jq \
tree
RUN ln -sf /usr/share/zoneinfo/Etc/UTC /etc/localtime
RUN locale-gen C.UTF-8 || true
ENV LANG=C.UTF-8

# Additional packages ARM simmulator
RUN apt-get install -y libqt5webkit5
ENV LD_LIBRARY_PATH=${ANDROID_HOME}/tools/lib64:${ANDROID_HOME}/emulator/lib64:${ANDROID_HOME}/emulator/lib64/qt/lib

# Install Docker
ENV DOCKER_COMPOSE=1.23.2
RUN set -ex \
&& export DOCKER_VERSION=$(curl --silent --fail --retry 3 https://download.docker.com/linux/static/stable/x86_64/ | grep -o -e 'docker-[.0-9]*\.tgz' | sort -r | head -n 1) \
&& DOCKER_URL="https://download.docker.com/linux/static/stable/x86_64/${DOCKER_VERSION}" \
&& echo Docker URL: $DOCKER_URL \
&& curl --silent --show-error --location --fail --retry 3 --output /tmp/docker.tgz "${DOCKER_URL}" \
&& ls -lha /tmp/docker.tgz \
&& tar -xz -C /tmp -f /tmp/docker.tgz \
&& mv /tmp/docker/* /usr/bin \
&& rm -rf /tmp/docker /tmp/docker.tgz \
&& which docker \
&& (docker version || true)

# Install Compose
RUN export UNAME_S=$(uname -s) \
&& export UNAME_M=$(uname -m) \
&& wget -q \
https://github.com/docker/compose/releases/download/${DOCKER_COMPOSE}/docker-compose-${UNAME_S}-${UNAME_M} -O /usr/local/bin/docker-compose \
&& chmod +x /usr/local/bin/docker-compose \
&& docker-compose --version

# Entrypoint
CMD ["/bin/sh"]

# Android deps
ENV DEBIAN_FRONTEND=noninteractive
ENV ANDROID_HOME /opt/android-sdk-linux
RUN dpkg --add-architecture i386
RUN apt-get update -qq
RUN apt-get install -y \
libc6:i386 libstdc++6:i386 libgcc1:i386 libncurses5:i386 libz1:i386 \
xvfb lib32z1 lib32stdc++6 build-essential \
libcurl4-openssl-dev libglu1-mesa libxi-dev libxmu-dev \
libglu1-mesa-dev

# Additional deps
RUN apt-get purge maven maven2 \
&& apt-get update \
&& apt-get -y install maven \
&& mvn --version \
&& wget https://services.gradle.org/distributions/gradle-7.3-bin.zip -P /tmp/ \
&& unzip -d /opt/gradle /tmp/gradle-7.3-bin.zip \
&& rm -rf /tmp/gradle-7.3-bin.zip \
&& echo 'export GRADLE_HOME=/opt/gradle/gradle-7.3' > /etc/profile.d/gradle.sh \
&& echo 'export PATH=${GRADLE_HOME}/bin:${PATH}' >> /etc/profile.d/gradle.sh \
&& chmod +x /etc/profile.d/gradle.sh \
&& . /etc/profile.d/gradle.sh \
&& gradle -v
ENV GRADLE_HOME=/opt/gradle/gradle-7.3
ENV PATH=${GRADLE_HOME}/bin:${PATH}

# Download Ruby
RUN apt-get update \
&& cd /tmp && wget -O ruby-install-0.8.5.tar.gz https://github.com/postmodern/ruby-install/archive/v0.8.5.tar.gz \
&& tar -xzvf ruby-install-0.8.5.tar.gz \
&& cd ruby-install-0.8.5 \
&& make install \
&& ruby-install --cleanup ruby 2.7.6 \
&& rm -r /tmp/ruby-install-* \
&& rm -rf /var/lib/apt/lists/*

# Configure Ruby
ENV PATH /opt/rubies/ruby-2.7.6/bin:${PATH}
RUN echo 'gem: --env-shebang --no-rdoc --no-ri' >> ~/.gemrc && gem install bundler fastlane

# Download Android SDK
RUN cd /opt && mkdir -p ${ANDROID_HOME}/cmdline-tools/latest \
&& wget -q https://dl.google.com/android/repository/commandlinetools-linux-8512546_latest.zip -O android-sdk-tools.zip \
&& unzip -q android-sdk-tools.zip \
&& mv cmdline-tools/* ${ANDROID_HOME}/cmdline-tools/latest/ \
&& rm -rf android-sdk-tools.zip cmdline-tools
ENV PATH=${ANDROID_HOME}/cmdline-tools/latest/bin:${ANDROID_HOME}/emulator:${ANDROID_HOME}/tools:${ANDROID_HOME}/tools/bin:${ANDROID_HOME}/platform-tools:${PATH}

# Install Android SDK
RUN mkdir ~/.android && echo "### User Sources for Android SDK Manager" > ~/.android/repositories.cfg
RUN yes | sdkmanager --licenses && yes | sdkmanager --update
RUN sdkmanager "emulator" "tools" "platform-tools" "cmdline-tools;latest"
RUN yes | sdkmanager \
"build-tools;33.0.0"
# Download Google Cloud SDK
RUN export CLOUD_SDK_REPO="cloud-sdk-$(lsb_release -c -s)" && \
echo "deb https://packages.cloud.google.com/apt $CLOUD_SDK_REPO main" | sudo tee -a /etc/apt/sources.list.d/google-cloud-sdk.list && \
curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -

RUN sudo apt-get update && sudo apt-get install -y google-cloud-sdk && \
sudo rm -rf /var/lib/apt/lists/* && \
gcloud config set core/disable_usage_reporting true && \
gcloud config set component_manager/disable_update_check true

# Install NVM
RUN curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.5/install.sh | bash && \
export NVM_DIR="$HOME/.nvm" && \
. "$NVM_DIR/nvm.sh"

# CleanUp
RUN apt-get clean
RUN sdkmanager "platforms;android-34"

0 comments on commit 870c39a

Please # to comment.