Skip to content

Commit cd5e48b

Browse files
committed
Initial commit
0 parents  commit cd5e48b

11 files changed

+781
-0
lines changed

.circleci/config.yml

+40
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
version: 2.1
2+
3+
orbs:
4+
sonar: hubci/[email protected]
5+
6+
workflows:
7+
main:
8+
jobs:
9+
- build:
10+
context: cimg-publishing
11+
12+
jobs:
13+
build:
14+
docker:
15+
- image: cibuilds/docker:19.03
16+
steps:
17+
- checkout
18+
- setup_remote_docker
19+
- run:
20+
name: "Build Docker Images"
21+
command: |
22+
./build-images.sh
23+
echo 'export DOCKER_PASS=$DOCKER_TOKEN' >> $BASH_ENV
24+
- deploy:
25+
name: "Publish Docker Images (main branch only)"
26+
command: |
27+
if [ "${CIRCLE_BRANCH}" == "main" ]; then
28+
29+
echo $DOCKER_TOKEN | docker login -u $DOCKER_USER --password-stdin
30+
31+
# an else block will be added in the future for a staging release
32+
if git log -1 --pretty=%s | grep "\[release\]"; then
33+
echo "Publishing cimg/android to Docker Hub production."
34+
docker push cimg/android
35+
else
36+
echo "Skipping publishing."
37+
fi
38+
- sonar/update-readme:
39+
image: cimg/android
40+
file: "./README.md"

.github/CODEOWNERS

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
# Automatically request PR reviews from the CPE Team as a whole and Ricardo specifically
2+
* @CircleCI-Public/cpeng @felicianotech

.gitmodules

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
[submodule "shared"]
2+
path = shared
3+
url = [email protected]:CircleCI-Public/cimg-shared.git

30.0/Dockerfile

+85
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
# vim:set ft=dockerfile:
2+
3+
FROM cimg/base:2021.04
4+
5+
LABEL maintainer="Community & Partner Engineering Team <[email protected]>"
6+
7+
8+
9+
# I may want to separate this into a variant to save space
10+
RUN sudo apt-get update && sudo apt-get install -y openjdk-8-jdk openjdk-11-jdk
11+
12+
# install maven
13+
# install gradle
14+
# install ant
15+
16+
# skipping kvm as it won't be available in the Docker executor
17+
18+
RUN sudo apt-get install -y ant
19+
20+
ENV M2_HOME /usr/local/apache-maven
21+
ENV MAVEN_OPTS -Xmx2048m
22+
ENV PATH $M2_HOME/bin:$PATH
23+
RUN MAVEN_VERSION=3.6.3 && \
24+
curl -sSL -o /tmp/maven.tar.gz http://apache.osuosl.org/maven/maven-3/${MAVEN_VERSION}/binaries/apache-maven-${MAVEN_VERSION}-bin.tar.gz && \
25+
sudo tar -xz -C /usr/local -f /tmp/maven.tar.gz && \
26+
sudo ln -sf /usr/local/apache-maven-${MAVEN_VERSION} /usr/local/apache-maven && \
27+
rm -rf /tmp/maven.tar.gz && \
28+
mkdir -p /home/circleci/.m2
29+
30+
ENV PATH $PATH:/usr/local/gradle-${GRADLE_VERSION}/bin
31+
RUN GRADLE_VERSION=6.8.3 && \
32+
URL=https://services.gradle.org/distributions/gradle-${GRADLE_VERSION}-bin.zip && \
33+
curl -sSL -o /tmp/gradle.zip $URL && \
34+
sudo unzip -d /usr/local /tmp/gradle.zip && \
35+
rm -rf /tmp/gradle.zip
36+
37+
# Install Android SDK Tools
38+
ENV ANDROID_HOME "/home/circleci/android-sdk"
39+
ENV ANDROID_SDK_ROOT $ANDROID_HOME
40+
ENV CMDLINE_TOOLS_ROOT "${ANDROID_HOME}/cmdline-tools/latest/bin"
41+
ENV ADB_INSTALL_TIMEOUT 120
42+
ENV PATH "${ANDROID_HOME}/emulator:${ANDROID_HOME}/cmdline-tools/latest/bin:${ANDROID_HOME}/tools:${ANDROID_HOME}/tools/bin:${ANDROID_HOME}/platform-tools:${ANDROID_HOME}/platform-tools/bin:${PATH}"
43+
RUN SDK_TOOLS_URL="https://dl.google.com/android/repository/commandlinetools-linux-6858069_latest.zip" && \
44+
mkdir -p ${ANDROID_HOME}/cmdline-tools && \
45+
mkdir ${ANDROID_HOME}/platforms && \
46+
mkdir ${ANDROID_HOME}/ndk && \
47+
wget -O /tmp/cmdline-tools.zip -t 5 "${SDK_TOOLS_URL}" && \
48+
unzip -q /tmp/cmdline-tools.zip -d ${ANDROID_HOME}/cmdline-tools && \
49+
rm /tmp/cmdline-tools.zip && \
50+
mv ${ANDROID_HOME}/cmdline-tools/cmdline-tools ${ANDROID_HOME}/cmdline-tools/latest
51+
52+
# CHeck that these envars exists in a real CI build
53+
#echo "export ANDROID_HOME=${ANDROID_HOME}" >> ${CIRCLECI_HOME}/.circlerc
54+
#echo "export ANDROID_SDK_ROOT=${ANDROID_HOME}" >> ${CIRCLECI_HOME}/.circlerc
55+
#echo "export ADB_INSTALL_TIMEOUT=120" >> ${CIRCLECI_HOME}/.circlerc
56+
#echo 'export PATH=${ANDROID_HOME}/emulator:${ANDROID_HOME}/cmdline-tools/latest/bin:${ANDROID_HOME}/tools:${ANDROID_HOME}/tools/bin:${ANDROID_HOME}/platform-tools:${ANDROID_HOME}/platform-tools/bin:$PATH' >> ${CIRCLECI_HOME}/.circlerc
57+
58+
#RUN yes | ${CMDLINE_TOOLS_ROOT}/sdkmanager --licenses && yes | ${CMDLINE_TOOLS_ROOT}/sdkmanager --update
59+
60+
RUN echo y | ${CMDLINE_TOOLS_ROOT}/sdkmanager "tools" && \
61+
echo y | ${CMDLINE_TOOLS_ROOT}/sdkmanager "platform-tools" && \
62+
echo y | ${CMDLINE_TOOLS_ROOT}/sdkmanager "build-tools;30.0.3"
63+
64+
RUN echo y | ${CMDLINE_TOOLS_ROOT}/sdkmanager "platforms;android-S"
65+
RUN echo y | ${CMDLINE_TOOLS_ROOT}/sdkmanager "platforms;android-30"
66+
RUN echo y | ${CMDLINE_TOOLS_ROOT}/sdkmanager "platforms;android-29"
67+
RUN echo y | ${CMDLINE_TOOLS_ROOT}/sdkmanager "platforms;android-28"
68+
RUN echo y | ${CMDLINE_TOOLS_ROOT}/sdkmanager "platforms;android-27"
69+
RUN echo y | ${CMDLINE_TOOLS_ROOT}/sdkmanager "platforms;android-26"
70+
RUN echo y | ${CMDLINE_TOOLS_ROOT}/sdkmanager "platforms;android-25"
71+
RUN echo y | ${CMDLINE_TOOLS_ROOT}/sdkmanager "platforms;android-24"
72+
RUN echo y | ${CMDLINE_TOOLS_ROOT}/sdkmanager "platforms;android-23"
73+
74+
# ndk stuff
75+
ENV ANDROID_NDK_HOME "/opt/android/sdk/ndk/${ndk_version}"
76+
ENV ANDROID_NDK_ROOT ANDROID_NDK_HOME
77+
ENV PATH "${ANDROID_NDK_HOME}:${PATH}"
78+
RUN ndk_version="21.4.7075529" && \
79+
echo y | ${CMDLINE_TOOLS_ROOT}/sdkmanager "ndk;${ndk_version}" && \
80+
echo y | ${CMDLINE_TOOLS_ROOT}/sdkmanager "cmake;3.6.4111459"
81+
82+
# install extras
83+
RUN echo y | ${CMDLINE_TOOLS_ROOT}/sdkmanager "extras;android;m2repository" && \
84+
echo y | ${CMDLINE_TOOLS_ROOT}/sdkmanager "extras;google;m2repository" && \
85+
echo y | ${CMDLINE_TOOLS_ROOT}/sdkmanager "extras;google;google_play_services"

Dockerfile.template

+85
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
# vim:set ft=dockerfile:
2+
3+
FROM cimg/%%PARENT%%:2021.04
4+
5+
LABEL maintainer="Community & Partner Engineering Team <[email protected]>"
6+
7+
8+
9+
# I may want to separate this into a variant to save space
10+
RUN sudo apt-get update && sudo apt-get install -y openjdk-8-jdk openjdk-11-jdk
11+
12+
# install maven
13+
# install gradle
14+
# install ant
15+
16+
# skipping kvm as it won't be available in the Docker executor
17+
18+
RUN sudo apt-get install -y ant
19+
20+
ENV M2_HOME /usr/local/apache-maven
21+
ENV MAVEN_OPTS -Xmx2048m
22+
ENV PATH $M2_HOME/bin:$PATH
23+
RUN MAVEN_VERSION=3.6.3 && \
24+
curl -sSL -o /tmp/maven.tar.gz http://apache.osuosl.org/maven/maven-3/${MAVEN_VERSION}/binaries/apache-maven-${MAVEN_VERSION}-bin.tar.gz && \
25+
sudo tar -xz -C /usr/local -f /tmp/maven.tar.gz && \
26+
sudo ln -sf /usr/local/apache-maven-${MAVEN_VERSION} /usr/local/apache-maven && \
27+
rm -rf /tmp/maven.tar.gz && \
28+
mkdir -p /home/circleci/.m2
29+
30+
ENV PATH $PATH:/usr/local/gradle-${GRADLE_VERSION}/bin
31+
RUN GRADLE_VERSION=6.8.3 && \
32+
URL=https://services.gradle.org/distributions/gradle-${GRADLE_VERSION}-bin.zip && \
33+
curl -sSL -o /tmp/gradle.zip $URL && \
34+
sudo unzip -d /usr/local /tmp/gradle.zip && \
35+
rm -rf /tmp/gradle.zip
36+
37+
# Install Android SDK Tools
38+
ENV ANDROID_HOME "/home/circleci/android-sdk"
39+
ENV ANDROID_SDK_ROOT $ANDROID_HOME
40+
ENV CMDLINE_TOOLS_ROOT "${ANDROID_HOME}/cmdline-tools/latest/bin"
41+
ENV ADB_INSTALL_TIMEOUT 120
42+
ENV PATH "${ANDROID_HOME}/emulator:${ANDROID_HOME}/cmdline-tools/latest/bin:${ANDROID_HOME}/tools:${ANDROID_HOME}/tools/bin:${ANDROID_HOME}/platform-tools:${ANDROID_HOME}/platform-tools/bin:${PATH}"
43+
RUN SDK_TOOLS_URL="https://dl.google.com/android/repository/commandlinetools-linux-6858069_latest.zip" && \
44+
mkdir -p ${ANDROID_HOME}/cmdline-tools && \
45+
mkdir ${ANDROID_HOME}/platforms && \
46+
mkdir ${ANDROID_HOME}/ndk && \
47+
wget -O /tmp/cmdline-tools.zip -t 5 "${SDK_TOOLS_URL}" && \
48+
unzip -q /tmp/cmdline-tools.zip -d ${ANDROID_HOME}/cmdline-tools && \
49+
rm /tmp/cmdline-tools.zip && \
50+
mv ${ANDROID_HOME}/cmdline-tools/cmdline-tools ${ANDROID_HOME}/cmdline-tools/latest
51+
52+
# CHeck that these envars exists in a real CI build
53+
#echo "export ANDROID_HOME=${ANDROID_HOME}" >> ${CIRCLECI_HOME}/.circlerc
54+
#echo "export ANDROID_SDK_ROOT=${ANDROID_HOME}" >> ${CIRCLECI_HOME}/.circlerc
55+
#echo "export ADB_INSTALL_TIMEOUT=120" >> ${CIRCLECI_HOME}/.circlerc
56+
#echo 'export PATH=${ANDROID_HOME}/emulator:${ANDROID_HOME}/cmdline-tools/latest/bin:${ANDROID_HOME}/tools:${ANDROID_HOME}/tools/bin:${ANDROID_HOME}/platform-tools:${ANDROID_HOME}/platform-tools/bin:$PATH' >> ${CIRCLECI_HOME}/.circlerc
57+
58+
#RUN yes | ${CMDLINE_TOOLS_ROOT}/sdkmanager --licenses && yes | ${CMDLINE_TOOLS_ROOT}/sdkmanager --update
59+
60+
RUN echo y | ${CMDLINE_TOOLS_ROOT}/sdkmanager "tools" && \
61+
echo y | ${CMDLINE_TOOLS_ROOT}/sdkmanager "platform-tools" && \
62+
echo y | ${CMDLINE_TOOLS_ROOT}/sdkmanager "build-tools;30.0.3"
63+
64+
RUN echo y | ${CMDLINE_TOOLS_ROOT}/sdkmanager "platforms;android-S"
65+
RUN echo y | ${CMDLINE_TOOLS_ROOT}/sdkmanager "platforms;android-30"
66+
RUN echo y | ${CMDLINE_TOOLS_ROOT}/sdkmanager "platforms;android-29"
67+
RUN echo y | ${CMDLINE_TOOLS_ROOT}/sdkmanager "platforms;android-28"
68+
RUN echo y | ${CMDLINE_TOOLS_ROOT}/sdkmanager "platforms;android-27"
69+
RUN echo y | ${CMDLINE_TOOLS_ROOT}/sdkmanager "platforms;android-26"
70+
RUN echo y | ${CMDLINE_TOOLS_ROOT}/sdkmanager "platforms;android-25"
71+
RUN echo y | ${CMDLINE_TOOLS_ROOT}/sdkmanager "platforms;android-24"
72+
RUN echo y | ${CMDLINE_TOOLS_ROOT}/sdkmanager "platforms;android-23"
73+
74+
# ndk stuff
75+
ENV ANDROID_NDK_HOME "/opt/android/sdk/ndk/${ndk_version}"
76+
ENV ANDROID_NDK_ROOT ANDROID_NDK_HOME
77+
ENV PATH "${ANDROID_NDK_HOME}:${PATH}"
78+
RUN ndk_version="21.4.7075529" && \
79+
echo y | ${CMDLINE_TOOLS_ROOT}/sdkmanager "ndk;${ndk_version}" && \
80+
echo y | ${CMDLINE_TOOLS_ROOT}/sdkmanager "cmake;3.6.4111459"
81+
82+
# install extras
83+
RUN echo y | ${CMDLINE_TOOLS_ROOT}/sdkmanager "extras;android;m2repository" && \
84+
echo y | ${CMDLINE_TOOLS_ROOT}/sdkmanager "extras;google;m2repository" && \
85+
echo y | ${CMDLINE_TOOLS_ROOT}/sdkmanager "extras;google;google_play_services"

LICENSE

+21
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
MIT License
2+
3+
Copyright ©2021 CircleCI
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in all
13+
copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+
SOFTWARE.

0 commit comments

Comments
 (0)