Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Publish v2024.12.1. [release] #155

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
94 changes: 94 additions & 0 deletions 2024.12/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
# vim:set ft=dockerfile:

# 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.

# By policy, the base image tag should be a quarterly tag unless there's a
# specific reason to use a different one. This means January, April, July, or
# October.

FROM cimg/base:2024.02

LABEL maintainer="CircleCI Execution Team <[email protected]>"

# Java 17 is default
RUN sudo apt-get update && sudo apt-get install -y \
ant \
openjdk-8-jdk \
openjdk-17-jdk \
openjdk-21-jdk \
ruby-full \
&& \
sudo rm -rf /var/lib/apt/lists/* && \
ruby -v && \
sudo gem install bundler && \
bundle version

#fixes issue with bundle install highlighted in https://github.com/CircleCI-Public/cimg-android/issues/82
RUN sudo chmod -R a+w /var/lib/gems/ /usr/local/bin

ENV M2_HOME /usr/local/apache-maven
ENV MAVEN_OPTS -Xmx2048m
ENV PATH $M2_HOME/bin:$PATH
# Set JAVA_HOME (and related) environment variable. This will be set to our
# default Java version of 21 but the user would need to reset it when changing
# JAVA versions.
ENV JAVA_HOME=/usr/lib/jvm/java-21-openjdk-amd64
ENV JDK_HOME=${JAVA_HOME}
ENV JRE_HOME=${JDK_HOME}
ENV MAVEN_VERSION=3.9.9
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 && \
sudo tar -xz -C /usr/local -f /tmp/maven.tar.gz && \
sudo ln -sf /usr/local/apache-maven-${MAVEN_VERSION} /usr/local/apache-maven && \
rm -rf /tmp/maven.tar.gz && \
mkdir -p /home/circleci/.m2
ENV GRADLE_VERSION=8.11.1
ENV PATH $PATH:/usr/local/gradle-${GRADLE_VERSION}/bin
RUN URL=https://services.gradle.org/distributions/gradle-${GRADLE_VERSION}-bin.zip && \
curl -sSL -o /tmp/gradle.zip $URL && \
sudo unzip -d /usr/local /tmp/gradle.zip && \
rm -rf /tmp/gradle.zip

# Install Android SDK Tools
ENV ANDROID_HOME "/home/circleci/android-sdk"
ENV ANDROID_SDK_ROOT $ANDROID_HOME
ENV CMDLINE_TOOLS_ROOT "${ANDROID_HOME}/cmdline-tools/latest/bin"
ENV ADB_INSTALL_TIMEOUT 120
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}"
# You can find the latest command line tools here: https://developer.android.com/studio#command-line-tools-only
RUN SDK_TOOLS_URL="https://dl.google.com/android/repository/commandlinetools-linux-11076708_latest.zip" && \
mkdir -p ${ANDROID_HOME}/cmdline-tools && \
mkdir ${ANDROID_HOME}/platforms && \
mkdir ${ANDROID_HOME}/ndk && \
wget -O /tmp/cmdline-tools.zip -t 5 "${SDK_TOOLS_URL}" && \
unzip -q /tmp/cmdline-tools.zip -d ${ANDROID_HOME}/cmdline-tools && \
rm /tmp/cmdline-tools.zip && \
mv ${ANDROID_HOME}/cmdline-tools/cmdline-tools ${ANDROID_HOME}/cmdline-tools/latest

RUN echo y | ${CMDLINE_TOOLS_ROOT}/sdkmanager "tools" && \
echo y | ${CMDLINE_TOOLS_ROOT}/sdkmanager "platform-tools" && \
echo y | ${CMDLINE_TOOLS_ROOT}/sdkmanager "build-tools;36.0.0-rc1" && \
echo y | ${CMDLINE_TOOLS_ROOT}/sdkmanager "build-tools;35.0.0-rc4" && \
echo y | ${CMDLINE_TOOLS_ROOT}/sdkmanager "build-tools;34.0.0-rc3"
RUN echo y | ${CMDLINE_TOOLS_ROOT}/sdkmanager "platforms;android-29" && \
echo y | ${CMDLINE_TOOLS_ROOT}/sdkmanager "platforms;android-30" && \
echo y | ${CMDLINE_TOOLS_ROOT}/sdkmanager "platforms;android-31" && \
echo y | ${CMDLINE_TOOLS_ROOT}/sdkmanager "platforms;android-32" && \
echo y | ${CMDLINE_TOOLS_ROOT}/sdkmanager "platforms;android-33" && \
echo y | ${CMDLINE_TOOLS_ROOT}/sdkmanager "platforms;android-34" && \
echo y | ${CMDLINE_TOOLS_ROOT}/sdkmanager "platforms;android-35"

# Install some useful packages
RUN echo y | ${CMDLINE_TOOLS_ROOT}/sdkmanager "extras;android;m2repository" && \
echo y | ${CMDLINE_TOOLS_ROOT}/sdkmanager "extras;google;m2repository" && \
echo y | ${CMDLINE_TOOLS_ROOT}/sdkmanager "extras;google;google_play_services" && \
sudo gem install fastlane --version 2.225.0 --no-document && \
curl -sL https://firebase.tools | bash

# Install Google Cloud CLI
# Latest gcloud version can be found here: https://cloud.google.com/sdk/docs/release-notes
ENV GCLOUD_VERSION=453.0.0-0
RUN curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add - && \
sudo add-apt-repository "deb https://packages.cloud.google.com/apt cloud-sdk main" && \
sudo apt-get update && sudo apt-get install -y google-cloud-sdk=${GCLOUD_VERSION} && \
sudo gcloud config set --installation component_manager/disable_update_check true && \
sudo gcloud config set disable_usage_reporting false
62 changes: 62 additions & 0 deletions 2024.12/browsers/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
# vim:set ft=dockerfile:

FROM cimg/android:2024.12.1-node

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

# Install Selenium
ENV SELENIUM_VER=3.141.59
RUN curl -sSL -o selenium-server-standalone-${SELENIUM_VER}.jar "https://selenium-release.storage.googleapis.com/${SELENIUM_VER%.*}/selenium-server-standalone-${SELENIUM_VER}.jar" && \
sudo cp selenium-server-standalone-${SELENIUM_VER}.jar /usr/local/bin/selenium.jar && \
rm selenium-server-standalone-${SELENIUM_VER}.jar

RUN sudo apt-get update && \
sudo apt-get install --yes --no-install-recommends \
xvfb \
&& \
# Install Java only if it's not already available
# Java is installed for Selenium
if ! command -v java > /dev/null; then \
echo "Java not found in parent image, installing..." && \
sudo apt-get install -y --no-install-recommends --no-upgrade openjdk-11-jre; \
fi && \
sudo rm -rf /var/lib/apt/lists/*

# Below is setup to allow xvfb to start when the container starts up.
# The label in particular allows this image to override what CircleCI does
# when booting the image.
LABEL com.circleci.preserve-entrypoint=true
ENV DISPLAY=":99"
#RUN printf '#!/bin/sh\nXvfb :99 -screen 0 1280x1024x24 &\nexec "$@"\n' > /tmp/entrypoint && \
# chmod +x /tmp/entrypoint && \
# sudo mv /tmp/entrypoint /docker-entrypoint.sh
RUN printf '#!/bin/sh\nXvfb :99 -screen 0 1280x1024x24 &\nexec "$@"\n' | sudo tee /docker-entrypoint.sh && \
sudo chmod +x /docker-entrypoint.sh

# Install a single version of Firefox. This isn't intended to be a regularly
# updated thing. Instead, if this version of Firefox isn't what the end user
# wants they should install a different version via the Browser Tools Orb.
#
# Canonical made a major technology change in how Firefox is installed from
# Ubuntu 21.10 and up. The general CI space doesn't seem to be ready for a snap
# based Firefox right now so we are installing it from the Mozilla PPA.
RUN echo 'Package: *' | sudo tee -a /etc/apt/preferences.d/firefox.pref && \
echo 'Pin: release o=LP-PPA-mozillateam' | sudo tee -a /etc/apt/preferences.d/firefox.pref && \
echo 'Pin-Priority: 1001' | sudo tee -a /etc/apt/preferences.d/firefox.pref && \
sudo add-apt-repository --yes ppa:mozillateam/ppa && \
sudo apt-get install --no-install-recommends --yes firefox && \
sudo rm -rf /var/lib/apt/lists/* && \
firefox --version

# Install a single version of Google Chrome Stable. This isn't intended to be a
# regularly updated thing. Instead, if this version of Chrome isn't what the
# end user wants they should install a different version via the Browser Tools
# Orb.
RUN wget -q -O - "https://dl.google.com/linux/linux_signing_key.pub" | sudo apt-key add - && \
echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" | sudo tee /etc/apt/sources.list.d/google-chrome.list && \
sudo apt-get update && \
sudo apt-get install google-chrome-stable && \
sudo rm -rf /var/lib/apt/lists/*

ENTRYPOINT ["/docker-entrypoint.sh"]
CMD ["/bin/sh"]
21 changes: 21 additions & 0 deletions 2024.12/ndk/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# vim:set ft=dockerfile:

FROM cimg/android:2024.12.1

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

RUN echo y | ${CMDLINE_TOOLS_ROOT}/sdkmanager "cmake;3.30.5" && \
echo y | ${CMDLINE_TOOLS_ROOT}/sdkmanager "cmake;3.31.0"

# Use the last two versions of the NDK
# Setup LTS release
ENV NDK_LTS_VERSION "28.0.12674087"
ENV ANDROID_NDK_HOME "/home/circleci/android-sdk/ndk/${NDK_LTS_VERSION}"
RUN echo y | ${CMDLINE_TOOLS_ROOT}/sdkmanager "ndk;${NDK_LTS_VERSION}"

ENV ANDROID_NDK_ROOT "${ANDROID_NDK_HOME}"
ENV PATH "${ANDROID_NDK_HOME}:${PATH}"

# Setup Stable release
ENV NDK_STABLE_VERSION "27.2.12479018"
RUN echo y | ${CMDLINE_TOOLS_ROOT}/sdkmanager "ndk;${NDK_STABLE_VERSION}"
21 changes: 21 additions & 0 deletions 2024.12/node/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# vim:set ft=dockerfile:

FROM cimg/android:2024.12.1

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

# Dockerfile will pull the latest LTS release from cimg-node.
RUN curl -sSL "https://raw.githubusercontent.com/CircleCI-Public/cimg-node/main/ALIASES" -o nodeAliases.txt && \
NODE_VERSION=$(grep "lts" ./nodeAliases.txt | cut -d "=" -f 2-) && \
[[ $(uname -m) == "x86_64" ]] && ARCH="x64" || ARCH="arm64" && \
curl -L -o node.tar.xz "https://nodejs.org/dist/v${NODE_VERSION}/node-v${NODE_VERSION}-linux-${ARCH}.tar.xz" && \
sudo tar -xJf node.tar.xz -C /usr/local --strip-components=1 && \
rm node.tar.xz nodeAliases.txt && \
sudo ln -s /usr/local/bin/node /usr/local/bin/nodejs

ENV YARN_VERSION="1.22.19"
RUN curl -L -o yarn.tar.gz "https://yarnpkg.com/downloads/${YARN_VERSION}/yarn-v${YARN_VERSION}.tar.gz" && \
sudo tar -xzf yarn.tar.gz -C /opt/ && \
rm yarn.tar.gz && \
sudo ln -s /opt/yarn-v${YARN_VERSION}/bin/yarn /usr/local/bin/yarn && \
sudo ln -s /opt/yarn-v${YARN_VERSION}/bin/yarnpkg /usr/local/bin/yarnpkg
6 changes: 3 additions & 3 deletions Dockerfile.template
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ RUN curl -sSL -o /tmp/maven.tar.gz http://apache.osuosl.org/maven/maven-3/${MAVE
sudo ln -sf /usr/local/apache-maven-${MAVEN_VERSION} /usr/local/apache-maven && \
rm -rf /tmp/maven.tar.gz && \
mkdir -p /home/circleci/.m2
ENV GRADLE_VERSION=8.10.2
ENV GRADLE_VERSION=8.11.1
ENV PATH $PATH:/usr/local/gradle-${GRADLE_VERSION}/bin
RUN URL=https://services.gradle.org/distributions/gradle-${GRADLE_VERSION}-bin.zip && \
curl -sSL -o /tmp/gradle.zip $URL && \
Expand All @@ -66,9 +66,9 @@ RUN SDK_TOOLS_URL="https://dl.google.com/android/repository/commandlinetools-lin

RUN echo y | ${CMDLINE_TOOLS_ROOT}/sdkmanager "tools" && \
echo y | ${CMDLINE_TOOLS_ROOT}/sdkmanager "platform-tools" && \
echo y | ${CMDLINE_TOOLS_ROOT}/sdkmanager "build-tools;36.0.0-rc1" && \
echo y | ${CMDLINE_TOOLS_ROOT}/sdkmanager "build-tools;35.0.0-rc4" && \
echo y | ${CMDLINE_TOOLS_ROOT}/sdkmanager "build-tools;34.0.0-rc3" && \
echo y | ${CMDLINE_TOOLS_ROOT}/sdkmanager "build-tools;33.0.3"
echo y | ${CMDLINE_TOOLS_ROOT}/sdkmanager "build-tools;34.0.0-rc3"
RUN echo y | ${CMDLINE_TOOLS_ROOT}/sdkmanager "platforms;android-29" && \
echo y | ${CMDLINE_TOOLS_ROOT}/sdkmanager "platforms;android-30" && \
echo y | ${CMDLINE_TOOLS_ROOT}/sdkmanager "platforms;android-31" && \
Expand Down
2 changes: 1 addition & 1 deletion GEN-CHECK
Original file line number Diff line number Diff line change
@@ -1 +1 @@
GEN_CHECK=(2024.11.1)
GEN_CHECK=(2024.12.1)
8 changes: 4 additions & 4 deletions build-images.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
# Do not edit by hand; please use build scripts/templates to make changes
set -eo pipefail

docker build --file 2024.11/Dockerfile -t cimg/android:2024.11.1 -t cimg/android:2024.11 --platform linux/amd64 --push .
docker build --file 2024.11/ndk/Dockerfile -t cimg/android:2024.11.1-ndk -t cimg/android:2024.11-ndk --platform linux/amd64 --push .
docker build --file 2024.11/node/Dockerfile -t cimg/android:2024.11.1-node -t cimg/android:2024.11-node --platform linux/amd64 --push .
docker build --file 2024.11/browsers/Dockerfile -t cimg/android:2024.11.1-browsers -t cimg/android:2024.11-browsers --platform linux/amd64 --push .
docker build --file 2024.12/Dockerfile -t cimg/android:2024.12.1 -t cimg/android:2024.12 --platform linux/amd64 --push .
docker build --file 2024.12/ndk/Dockerfile -t cimg/android:2024.12.1-ndk -t cimg/android:2024.12-ndk --platform linux/amd64 --push .
docker build --file 2024.12/node/Dockerfile -t cimg/android:2024.12.1-node -t cimg/android:2024.12-node --platform linux/amd64 --push .
docker build --file 2024.12/browsers/Dockerfile -t cimg/android:2024.12.1-browsers -t cimg/android:2024.12-browsers --platform linux/amd64 --push .
16 changes: 8 additions & 8 deletions push-images.sh
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
#!/usr/bin/env bash
# Do not edit by hand; please use build scripts/templates to make changes
set -eo pipefail
docker push cimg/android:2024.11
docker push cimg/android:2024.11.1
docker push cimg/android:2024.11-ndk
docker push cimg/android:2024.11.1-ndk
docker push cimg/android:2024.11-node
docker push cimg/android:2024.11.1-node
docker push cimg/android:2024.11-browsers
docker push cimg/android:2024.11.1-browsers
docker push cimg/android:2024.12
docker push cimg/android:2024.12.1
docker push cimg/android:2024.12-ndk
docker push cimg/android:2024.12.1-ndk
docker push cimg/android:2024.12-node
docker push cimg/android:2024.12.1-node
docker push cimg/android:2024.12-browsers
docker push cimg/android:2024.12.1-browsers
6 changes: 3 additions & 3 deletions variants/ndk.Dockerfile.template
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,12 @@ FROM %%NAMESPACE%%/%%PARENT%%:%%PARENT_TAG%%

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

RUN echo y | ${CMDLINE_TOOLS_ROOT}/sdkmanager "cmake;3.30.4" && \
echo y | ${CMDLINE_TOOLS_ROOT}/sdkmanager "cmake;3.30.5"
RUN echo y | ${CMDLINE_TOOLS_ROOT}/sdkmanager "cmake;3.30.5" && \
echo y | ${CMDLINE_TOOLS_ROOT}/sdkmanager "cmake;3.31.0"

# Use the last two versions of the NDK
# Setup LTS release
ENV NDK_LTS_VERSION "28.0.12433566"
ENV NDK_LTS_VERSION "28.0.12674087"
ENV ANDROID_NDK_HOME "/home/circleci/android-sdk/ndk/${NDK_LTS_VERSION}"
RUN echo y | ${CMDLINE_TOOLS_ROOT}/sdkmanager "ndk;${NDK_LTS_VERSION}"

Expand Down