Skip to content

Commit 8d48eae

Browse files
committed
chore: Add android 35
1 parent f4d18ce commit 8d48eae

File tree

2 files changed

+156
-0
lines changed

2 files changed

+156
-0
lines changed

.github/workflows/docker-publish.yml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,16 @@ jobs:
8282
labels: ${{ steps.meta.outputs.labels }}
8383
cache-from: type=gha
8484
cache-to: type=gha,mode=max
85+
- name: Build and push Docker image 35
86+
id: build-and-push-35
87+
uses: docker/build-push-action@ac9327eae2b366085ac7f6a2d02df8aa8ead720a
88+
with:
89+
context: android/35-node
90+
push: ${{ github.event_name != 'pull_request' }}
91+
tags: ${{ steps.meta.outputs.tags }}
92+
labels: ${{ steps.meta.outputs.labels }}
93+
cache-from: type=gha
94+
cache-to: type=gha,mode=max
8595

8696

8797
# Sign the resulting Docker image digest except on PRs.

android/35-node/Dockerfile

Lines changed: 146 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,146 @@
1+
FROM openjdk:21-jdk-slim
2+
3+
# Make APT non-interactive
4+
RUN echo 'APT::Get::Assume-Yes "true";' > /etc/apt/apt.conf.d/99semaphore
5+
RUN echo 'DPkg::Options "--force-confnew";' >> /etc/apt/apt.conf.d/99semaphore
6+
RUN echo 'Acquire::Check-Valid-Until no;' >> /etc/apt/apt.conf
7+
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
8+
ENV DEBIAN_FRONTEND=noninteractive
9+
10+
# Install Packages
11+
RUN mkdir -p /usr/share/man/man1
12+
RUN apt-get update
13+
RUN apt-get install -y \
14+
git \
15+
mercurial \
16+
xvfb \
17+
vim \
18+
apt \
19+
locales \
20+
sudo \
21+
apt-transport-https \
22+
ca-certificates \
23+
openssh-client \
24+
software-properties-common \
25+
build-essential \
26+
tar \
27+
lsb-release \
28+
gzip \
29+
parallel \
30+
net-tools \
31+
netcat \
32+
unzip \
33+
zip \
34+
bzip2 \
35+
lftp \
36+
gnupg \
37+
curl \
38+
wget \
39+
jq \
40+
tree
41+
RUN ln -sf /usr/share/zoneinfo/Etc/UTC /etc/localtime
42+
RUN locale-gen C.UTF-8 || true
43+
ENV LANG=C.UTF-8
44+
45+
# Additional packages ARM simmulator
46+
RUN apt-get install -y libqt5webkit5
47+
ENV LD_LIBRARY_PATH=${ANDROID_HOME}/tools/lib64:${ANDROID_HOME}/emulator/lib64:${ANDROID_HOME}/emulator/lib64/qt/lib
48+
49+
# Install Docker
50+
ENV DOCKER_COMPOSE=1.23.2
51+
RUN set -ex \
52+
&& 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) \
53+
&& DOCKER_URL="https://download.docker.com/linux/static/stable/x86_64/${DOCKER_VERSION}" \
54+
&& echo Docker URL: $DOCKER_URL \
55+
&& curl --silent --show-error --location --fail --retry 3 --output /tmp/docker.tgz "${DOCKER_URL}" \
56+
&& ls -lha /tmp/docker.tgz \
57+
&& tar -xz -C /tmp -f /tmp/docker.tgz \
58+
&& mv /tmp/docker/* /usr/bin \
59+
&& rm -rf /tmp/docker /tmp/docker.tgz \
60+
&& which docker \
61+
&& (docker version || true)
62+
63+
# Install Compose
64+
RUN export UNAME_S=$(uname -s) \
65+
&& export UNAME_M=$(uname -m) \
66+
&& wget -q \
67+
https://github.com/docker/compose/releases/download/${DOCKER_COMPOSE}/docker-compose-${UNAME_S}-${UNAME_M} -O /usr/local/bin/docker-compose \
68+
&& chmod +x /usr/local/bin/docker-compose \
69+
&& docker-compose --version
70+
71+
# Entrypoint
72+
CMD ["/bin/sh"]
73+
74+
# Android deps
75+
ENV DEBIAN_FRONTEND=noninteractive
76+
ENV ANDROID_HOME /opt/android-sdk-linux
77+
RUN dpkg --add-architecture i386
78+
RUN apt-get update -qq
79+
RUN apt-get install -y \
80+
libc6:i386 libstdc++6:i386 libgcc1:i386 libncurses5:i386 libz1:i386 \
81+
xvfb lib32z1 lib32stdc++6 build-essential \
82+
libcurl4-openssl-dev libglu1-mesa libxi-dev libxmu-dev \
83+
libglu1-mesa-dev
84+
85+
# Additional deps
86+
RUN apt-get purge maven maven2 \
87+
&& apt-get update \
88+
&& apt-get -y install maven \
89+
&& mvn --version \
90+
&& wget https://services.gradle.org/distributions/gradle-8.11.1-bin.zip -P /tmp/ \
91+
&& unzip -d /opt/gradle /tmp/gradle-8.11.1-bin.zip \
92+
&& rm -rf /tmp/gradle-8.11.1-bin.zip \
93+
&& echo 'export GRADLE_HOME=/opt/gradle/gradle-8.11.1' > /etc/profile.d/gradle.sh \
94+
&& echo 'export PATH=${GRADLE_HOME}/bin:${PATH}' >> /etc/profile.d/gradle.sh \
95+
&& chmod +x /etc/profile.d/gradle.sh \
96+
&& . /etc/profile.d/gradle.sh \
97+
&& gradle -v
98+
ENV GRADLE_HOME=/opt/gradle/gradle-8.11.1
99+
ENV PATH=${GRADLE_HOME}/bin:${PATH}
100+
101+
# Download Ruby
102+
RUN apt-get update \
103+
&& cd /tmp && wget -O ruby-install-0.8.5.tar.gz https://github.com/postmodern/ruby-install/archive/v0.8.5.tar.gz \
104+
&& tar -xzvf ruby-install-0.8.5.tar.gz \
105+
&& cd ruby-install-0.8.5 \
106+
&& make install \
107+
&& ruby-install --cleanup ruby 2.7.6 \
108+
&& rm -r /tmp/ruby-install-* \
109+
&& rm -rf /var/lib/apt/lists/*
110+
111+
# Configure Ruby
112+
ENV PATH /opt/rubies/ruby-2.7.6/bin:${PATH}
113+
RUN echo 'gem: --env-shebang --no-rdoc --no-ri' >> ~/.gemrc && gem install bundler fastlane
114+
115+
# Download Android SDK
116+
RUN cd /opt && mkdir -p ${ANDROID_HOME}/cmdline-tools/latest \
117+
&& wget -q https://dl.google.com/android/repository/commandlinetools-linux-8512546_latest.zip -O android-sdk-tools.zip \
118+
&& unzip -q android-sdk-tools.zip \
119+
&& mv cmdline-tools/* ${ANDROID_HOME}/cmdline-tools/latest/ \
120+
&& rm -rf android-sdk-tools.zip cmdline-tools
121+
ENV PATH=${ANDROID_HOME}/cmdline-tools/latest/bin:${ANDROID_HOME}/emulator:${ANDROID_HOME}/tools:${ANDROID_HOME}/tools/bin:${ANDROID_HOME}/platform-tools:${PATH}
122+
123+
# Install Android SDK
124+
RUN mkdir ~/.android && echo "### User Sources for Android SDK Manager" > ~/.android/repositories.cfg
125+
RUN yes | sdkmanager --licenses && yes | sdkmanager --update
126+
RUN sdkmanager "emulator" "tools" "platform-tools" "cmdline-tools;latest"
127+
RUN yes | sdkmanager \
128+
"build-tools;35.0.1"
129+
# Download Google Cloud SDK
130+
RUN export CLOUD_SDK_REPO="cloud-sdk-$(lsb_release -c -s)" && \
131+
echo "deb https://packages.cloud.google.com/apt $CLOUD_SDK_REPO main" | sudo tee -a /etc/apt/sources.list.d/google-cloud-sdk.list && \
132+
curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
133+
134+
RUN sudo apt-get update && sudo apt-get install -y google-cloud-sdk && \
135+
sudo rm -rf /var/lib/apt/lists/* && \
136+
gcloud config set core/disable_usage_reporting true && \
137+
gcloud config set component_manager/disable_update_check true
138+
139+
# Install NVM
140+
RUN curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.5/install.sh | bash && \
141+
export NVM_DIR="$HOME/.nvm" && \
142+
. "$NVM_DIR/nvm.sh"
143+
144+
# CleanUp
145+
RUN apt-get clean
146+
RUN sdkmanager "platforms;android-35"

0 commit comments

Comments
 (0)