Skip to content

Commit e2f4d37

Browse files
Publish v2025.03.1. [release] (#158)
1 parent 1437a7c commit e2f4d37

File tree

9 files changed

+216
-18
lines changed

9 files changed

+216
-18
lines changed

Diff for: 2025.03/Dockerfile

+94
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,94 @@
1+
# vim:set ft=dockerfile:
2+
3+
# Do not edit individual Dockerfiles manually. Instead, please make changes to the Dockerfile.template, which will be used by the build script to generate Dockerfiles.
4+
5+
# By policy, the base image tag should be a quarterly tag unless there's a
6+
# specific reason to use a different one. This means January, April, July, or
7+
# October.
8+
9+
FROM cimg/base:2024.02
10+
11+
LABEL maintainer="CircleCI Execution Team <[email protected]>"
12+
13+
# Java 17 is default
14+
RUN sudo apt-get update && sudo apt-get install -y \
15+
ant \
16+
openjdk-8-jdk \
17+
openjdk-17-jdk \
18+
openjdk-21-jdk \
19+
ruby-full \
20+
&& \
21+
sudo rm -rf /var/lib/apt/lists/* && \
22+
ruby -v && \
23+
sudo gem install bundler && \
24+
bundle version
25+
26+
#fixes issue with bundle install highlighted in https://github.com/CircleCI-Public/cimg-android/issues/82
27+
RUN sudo chmod -R a+w /var/lib/gems/ /usr/local/bin
28+
29+
ENV M2_HOME /usr/local/apache-maven
30+
ENV MAVEN_OPTS -Xmx2048m
31+
ENV PATH $M2_HOME/bin:$PATH
32+
# Set JAVA_HOME (and related) environment variable. This will be set to our
33+
# default Java version of 21 but the user would need to reset it when changing
34+
# JAVA versions.
35+
ENV JAVA_HOME=/usr/lib/jvm/java-21-openjdk-amd64
36+
ENV JDK_HOME=${JAVA_HOME}
37+
ENV JRE_HOME=${JDK_HOME}
38+
ENV MAVEN_VERSION=3.9.9
39+
RUN curl -sSL -o /tmp/maven.tar.gz http://apache.osuosl.org/maven/maven-3/${MAVEN_VERSION}/binaries/apache-maven-${MAVEN_VERSION}-bin.tar.gz && \
40+
sudo tar -xz -C /usr/local -f /tmp/maven.tar.gz && \
41+
sudo ln -sf /usr/local/apache-maven-${MAVEN_VERSION} /usr/local/apache-maven && \
42+
rm -rf /tmp/maven.tar.gz && \
43+
mkdir -p /home/circleci/.m2
44+
ENV GRADLE_VERSION=8.13
45+
ENV PATH $PATH:/usr/local/gradle-${GRADLE_VERSION}/bin
46+
RUN URL=https://services.gradle.org/distributions/gradle-${GRADLE_VERSION}-bin.zip && \
47+
curl -sSL -o /tmp/gradle.zip $URL && \
48+
sudo unzip -d /usr/local /tmp/gradle.zip && \
49+
rm -rf /tmp/gradle.zip
50+
51+
# Install Android SDK Tools
52+
ENV ANDROID_HOME "/home/circleci/android-sdk"
53+
ENV ANDROID_SDK_ROOT $ANDROID_HOME
54+
ENV CMDLINE_TOOLS_ROOT "${ANDROID_HOME}/cmdline-tools/latest/bin"
55+
ENV ADB_INSTALL_TIMEOUT 120
56+
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}"
57+
# You can find the latest command line tools here: https://developer.android.com/studio#command-line-tools-only
58+
RUN SDK_TOOLS_URL="https://dl.google.com/android/repository/commandlinetools-linux-11076708_latest.zip" && \
59+
mkdir -p ${ANDROID_HOME}/cmdline-tools && \
60+
mkdir ${ANDROID_HOME}/platforms && \
61+
mkdir ${ANDROID_HOME}/ndk && \
62+
wget -O /tmp/cmdline-tools.zip -t 5 "${SDK_TOOLS_URL}" && \
63+
unzip -q /tmp/cmdline-tools.zip -d ${ANDROID_HOME}/cmdline-tools && \
64+
rm /tmp/cmdline-tools.zip && \
65+
mv ${ANDROID_HOME}/cmdline-tools/cmdline-tools ${ANDROID_HOME}/cmdline-tools/latest
66+
67+
RUN echo y | ${CMDLINE_TOOLS_ROOT}/sdkmanager "tools" && \
68+
echo y | ${CMDLINE_TOOLS_ROOT}/sdkmanager "platform-tools" && \
69+
echo y | ${CMDLINE_TOOLS_ROOT}/sdkmanager "build-tools;36.0.0-rc5" && \
70+
echo y | ${CMDLINE_TOOLS_ROOT}/sdkmanager "build-tools;35.0.1" && \
71+
echo y | ${CMDLINE_TOOLS_ROOT}/sdkmanager "build-tools;34.0.0-rc3"
72+
RUN echo y | ${CMDLINE_TOOLS_ROOT}/sdkmanager "platforms;android-29" && \
73+
echo y | ${CMDLINE_TOOLS_ROOT}/sdkmanager "platforms;android-30" && \
74+
echo y | ${CMDLINE_TOOLS_ROOT}/sdkmanager "platforms;android-31" && \
75+
echo y | ${CMDLINE_TOOLS_ROOT}/sdkmanager "platforms;android-32" && \
76+
echo y | ${CMDLINE_TOOLS_ROOT}/sdkmanager "platforms;android-33" && \
77+
echo y | ${CMDLINE_TOOLS_ROOT}/sdkmanager "platforms;android-34" && \
78+
echo y | ${CMDLINE_TOOLS_ROOT}/sdkmanager "platforms;android-35"
79+
80+
# Install some useful packages
81+
RUN echo y | ${CMDLINE_TOOLS_ROOT}/sdkmanager "extras;android;m2repository" && \
82+
echo y | ${CMDLINE_TOOLS_ROOT}/sdkmanager "extras;google;m2repository" && \
83+
echo y | ${CMDLINE_TOOLS_ROOT}/sdkmanager "extras;google;google_play_services" && \
84+
sudo gem install fastlane --version 2.226.0 --no-document && \
85+
curl -sL https://firebase.tools | bash
86+
87+
# Install Google Cloud CLI
88+
# Latest gcloud version can be found here: https://cloud.google.com/sdk/docs/release-notes
89+
ENV GCLOUD_VERSION=453.0.0-0
90+
RUN curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add - && \
91+
sudo add-apt-repository "deb https://packages.cloud.google.com/apt cloud-sdk main" && \
92+
sudo apt-get update && sudo apt-get install -y google-cloud-sdk=${GCLOUD_VERSION} && \
93+
sudo gcloud config set --installation component_manager/disable_update_check true && \
94+
sudo gcloud config set disable_usage_reporting false

Diff for: 2025.03/browsers/Dockerfile

+62
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
# vim:set ft=dockerfile:
2+
3+
FROM cimg/android:2025.03.1-node
4+
5+
LABEL maintainer="CircleCI Community & Partner Engineering Team <[email protected]>"
6+
7+
# Install Selenium
8+
ENV SELENIUM_VER=3.141.59
9+
RUN curl -sSL -o selenium-server-standalone-${SELENIUM_VER}.jar "https://selenium-release.storage.googleapis.com/${SELENIUM_VER%.*}/selenium-server-standalone-${SELENIUM_VER}.jar" && \
10+
sudo cp selenium-server-standalone-${SELENIUM_VER}.jar /usr/local/bin/selenium.jar && \
11+
rm selenium-server-standalone-${SELENIUM_VER}.jar
12+
13+
RUN sudo apt-get update && \
14+
sudo apt-get install --yes --no-install-recommends \
15+
xvfb \
16+
&& \
17+
# Install Java only if it's not already available
18+
# Java is installed for Selenium
19+
if ! command -v java > /dev/null; then \
20+
echo "Java not found in parent image, installing..." && \
21+
sudo apt-get install -y --no-install-recommends --no-upgrade openjdk-11-jre; \
22+
fi && \
23+
sudo rm -rf /var/lib/apt/lists/*
24+
25+
# Below is setup to allow xvfb to start when the container starts up.
26+
# The label in particular allows this image to override what CircleCI does
27+
# when booting the image.
28+
LABEL com.circleci.preserve-entrypoint=true
29+
ENV DISPLAY=":99"
30+
#RUN printf '#!/bin/sh\nXvfb :99 -screen 0 1280x1024x24 &\nexec "$@"\n' > /tmp/entrypoint && \
31+
# chmod +x /tmp/entrypoint && \
32+
# sudo mv /tmp/entrypoint /docker-entrypoint.sh
33+
RUN printf '#!/bin/sh\nXvfb :99 -screen 0 1280x1024x24 &\nexec "$@"\n' | sudo tee /docker-entrypoint.sh && \
34+
sudo chmod +x /docker-entrypoint.sh
35+
36+
# Install a single version of Firefox. This isn't intended to be a regularly
37+
# updated thing. Instead, if this version of Firefox isn't what the end user
38+
# wants they should install a different version via the Browser Tools Orb.
39+
#
40+
# Canonical made a major technology change in how Firefox is installed from
41+
# Ubuntu 21.10 and up. The general CI space doesn't seem to be ready for a snap
42+
# based Firefox right now so we are installing it from the Mozilla PPA.
43+
RUN echo 'Package: *' | sudo tee -a /etc/apt/preferences.d/firefox.pref && \
44+
echo 'Pin: release o=LP-PPA-mozillateam' | sudo tee -a /etc/apt/preferences.d/firefox.pref && \
45+
echo 'Pin-Priority: 1001' | sudo tee -a /etc/apt/preferences.d/firefox.pref && \
46+
sudo add-apt-repository --yes ppa:mozillateam/ppa && \
47+
sudo apt-get install --no-install-recommends --yes firefox && \
48+
sudo rm -rf /var/lib/apt/lists/* && \
49+
firefox --version
50+
51+
# Install a single version of Google Chrome Stable. This isn't intended to be a
52+
# regularly updated thing. Instead, if this version of Chrome isn't what the
53+
# end user wants they should install a different version via the Browser Tools
54+
# Orb.
55+
RUN wget -q -O - "https://dl.google.com/linux/linux_signing_key.pub" | sudo apt-key add - && \
56+
echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" | sudo tee /etc/apt/sources.list.d/google-chrome.list && \
57+
sudo apt-get update && \
58+
sudo apt-get install google-chrome-stable && \
59+
sudo rm -rf /var/lib/apt/lists/*
60+
61+
ENTRYPOINT ["/docker-entrypoint.sh"]
62+
CMD ["/bin/sh"]

Diff for: 2025.03/ndk/Dockerfile

+21
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
# vim:set ft=dockerfile:
2+
3+
FROM cimg/android:2025.03.1
4+
5+
LABEL maintainer="Community & Partner Engineering Team <[email protected]>"
6+
7+
RUN echo y | ${CMDLINE_TOOLS_ROOT}/sdkmanager "cmake;3.31.4" && \
8+
echo y | ${CMDLINE_TOOLS_ROOT}/sdkmanager "cmake;3.31.5"
9+
10+
# Use the last two versions of the NDK
11+
# Setup LTS release
12+
ENV NDK_LTS_VERSION "28.0.13004108"
13+
ENV ANDROID_NDK_HOME "/home/circleci/android-sdk/ndk/${NDK_LTS_VERSION}"
14+
RUN echo y | ${CMDLINE_TOOLS_ROOT}/sdkmanager "ndk;${NDK_LTS_VERSION}"
15+
16+
ENV ANDROID_NDK_ROOT "${ANDROID_NDK_HOME}"
17+
ENV PATH "${ANDROID_NDK_HOME}:${PATH}"
18+
19+
# Setup Stable release
20+
ENV NDK_STABLE_VERSION "27.2.12479018"
21+
RUN echo y | ${CMDLINE_TOOLS_ROOT}/sdkmanager "ndk;${NDK_STABLE_VERSION}"

Diff for: 2025.03/node/Dockerfile

+21
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
# vim:set ft=dockerfile:
2+
3+
FROM cimg/android:2025.03.1
4+
5+
LABEL maintainer="Community & Partner Engineering Team <[email protected]>"
6+
7+
# Dockerfile will pull the latest LTS release from cimg-node.
8+
RUN curl -sSL "https://raw.githubusercontent.com/CircleCI-Public/cimg-node/main/ALIASES" -o nodeAliases.txt && \
9+
NODE_VERSION=$(grep "lts" ./nodeAliases.txt | cut -d "=" -f 2-) && \
10+
[[ $(uname -m) == "x86_64" ]] && ARCH="x64" || ARCH="arm64" && \
11+
curl -L -o node.tar.xz "https://nodejs.org/dist/v${NODE_VERSION}/node-v${NODE_VERSION}-linux-${ARCH}.tar.xz" && \
12+
sudo tar -xJf node.tar.xz -C /usr/local --strip-components=1 && \
13+
rm node.tar.xz nodeAliases.txt && \
14+
sudo ln -s /usr/local/bin/node /usr/local/bin/nodejs
15+
16+
ENV YARN_VERSION="1.22.19"
17+
RUN curl -L -o yarn.tar.gz "https://yarnpkg.com/downloads/${YARN_VERSION}/yarn-v${YARN_VERSION}.tar.gz" && \
18+
sudo tar -xzf yarn.tar.gz -C /opt/ && \
19+
rm yarn.tar.gz && \
20+
sudo ln -s /opt/yarn-v${YARN_VERSION}/bin/yarn /usr/local/bin/yarn && \
21+
sudo ln -s /opt/yarn-v${YARN_VERSION}/bin/yarnpkg /usr/local/bin/yarnpkg

Diff for: Dockerfile.template

+2-2
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ RUN curl -sSL -o /tmp/maven.tar.gz http://apache.osuosl.org/maven/maven-3/${MAVE
4141
sudo ln -sf /usr/local/apache-maven-${MAVEN_VERSION} /usr/local/apache-maven && \
4242
rm -rf /tmp/maven.tar.gz && \
4343
mkdir -p /home/circleci/.m2
44-
ENV GRADLE_VERSION=8.12.1
44+
ENV GRADLE_VERSION=8.13
4545
ENV PATH $PATH:/usr/local/gradle-${GRADLE_VERSION}/bin
4646
RUN URL=https://services.gradle.org/distributions/gradle-${GRADLE_VERSION}-bin.zip && \
4747
curl -sSL -o /tmp/gradle.zip $URL && \
@@ -66,7 +66,7 @@ RUN SDK_TOOLS_URL="https://dl.google.com/android/repository/commandlinetools-lin
6666

6767
RUN echo y | ${CMDLINE_TOOLS_ROOT}/sdkmanager "tools" && \
6868
echo y | ${CMDLINE_TOOLS_ROOT}/sdkmanager "platform-tools" && \
69-
echo y | ${CMDLINE_TOOLS_ROOT}/sdkmanager "build-tools;36.0.0-rc4" && \
69+
echo y | ${CMDLINE_TOOLS_ROOT}/sdkmanager "build-tools;36.0.0-rc5" && \
7070
echo y | ${CMDLINE_TOOLS_ROOT}/sdkmanager "build-tools;35.0.1" && \
7171
echo y | ${CMDLINE_TOOLS_ROOT}/sdkmanager "build-tools;34.0.0-rc3"
7272
RUN echo y | ${CMDLINE_TOOLS_ROOT}/sdkmanager "platforms;android-29" && \

Diff for: GEN-CHECK

+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
GEN_CHECK=(2025.02.1)
1+
GEN_CHECK=(2025.03.1)

Diff for: build-images.sh

+4-4
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
# Do not edit by hand; please use build scripts/templates to make changes
33
set -eo pipefail
44

5-
docker build --file 2025.02/Dockerfile -t cimg/android:2025.02.1 -t cimg/android:2025.02 --platform linux/amd64 --push .
6-
docker build --file 2025.02/ndk/Dockerfile -t cimg/android:2025.02.1-ndk -t cimg/android:2025.02-ndk --platform linux/amd64 --push .
7-
docker build --file 2025.02/node/Dockerfile -t cimg/android:2025.02.1-node -t cimg/android:2025.02-node --platform linux/amd64 --push .
8-
docker build --file 2025.02/browsers/Dockerfile -t cimg/android:2025.02.1-browsers -t cimg/android:2025.02-browsers --platform linux/amd64 --push .
5+
docker build --file 2025.03/Dockerfile -t cimg/android:2025.03.1 -t cimg/android:2025.03 --platform linux/amd64 --push .
6+
docker build --file 2025.03/ndk/Dockerfile -t cimg/android:2025.03.1-ndk -t cimg/android:2025.03-ndk --platform linux/amd64 --push .
7+
docker build --file 2025.03/node/Dockerfile -t cimg/android:2025.03.1-node -t cimg/android:2025.03-node --platform linux/amd64 --push .
8+
docker build --file 2025.03/browsers/Dockerfile -t cimg/android:2025.03.1-browsers -t cimg/android:2025.03-browsers --platform linux/amd64 --push .

Diff for: push-images.sh

+8-8
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
#!/usr/bin/env bash
22
# Do not edit by hand; please use build scripts/templates to make changes
33
set -eo pipefail
4-
docker push cimg/android:2025.02
5-
docker push cimg/android:2025.02.1
6-
docker push cimg/android:2025.02-ndk
7-
docker push cimg/android:2025.02.1-ndk
8-
docker push cimg/android:2025.02-node
9-
docker push cimg/android:2025.02.1-node
10-
docker push cimg/android:2025.02-browsers
11-
docker push cimg/android:2025.02.1-browsers
4+
docker push cimg/android:2025.03
5+
docker push cimg/android:2025.03.1
6+
docker push cimg/android:2025.03-ndk
7+
docker push cimg/android:2025.03.1-ndk
8+
docker push cimg/android:2025.03-node
9+
docker push cimg/android:2025.03.1-node
10+
docker push cimg/android:2025.03-browsers
11+
docker push cimg/android:2025.03.1-browsers

Diff for: variants/ndk.Dockerfile.template

+3-3
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,12 @@ FROM %%NAMESPACE%%/%%PARENT%%:%%PARENT_TAG%%
44

55
LABEL maintainer="Community & Partner Engineering Team <[email protected]>"
66

7-
RUN echo y | ${CMDLINE_TOOLS_ROOT}/sdkmanager "cmake;3.31.1" && \
8-
echo y | ${CMDLINE_TOOLS_ROOT}/sdkmanager "cmake;3.31.4"
7+
RUN echo y | ${CMDLINE_TOOLS_ROOT}/sdkmanager "cmake;3.31.4" && \
8+
echo y | ${CMDLINE_TOOLS_ROOT}/sdkmanager "cmake;3.31.5"
99

1010
# Use the last two versions of the NDK
1111
# Setup LTS release
12-
ENV NDK_LTS_VERSION "28.0.12916984"
12+
ENV NDK_LTS_VERSION "28.0.13004108"
1313
ENV ANDROID_NDK_HOME "/home/circleci/android-sdk/ndk/${NDK_LTS_VERSION}"
1414
RUN echo y | ${CMDLINE_TOOLS_ROOT}/sdkmanager "ndk;${NDK_LTS_VERSION}"
1515

0 commit comments

Comments
 (0)