From 4d330f406dcc4b4e7f626a2bf6435ff7e8a9e8e3 Mon Sep 17 00:00:00 2001 From: Oleksandr Bezpalchuk Date: Thu, 9 May 2024 16:01:51 +0300 Subject: [PATCH 1/6] Update default jdkVersion to 17 --- 30-emulator/Dockerfile | 2 +- 30-ndk/Dockerfile | 2 +- 30-stf-client/Dockerfile | 2 +- 30/Dockerfile | 2 +- 31-emulator/Dockerfile | 2 +- 31-stf-client/Dockerfile | 2 +- 31/Dockerfile | 2 +- 32-emulator/Dockerfile | 2 +- 32-ndk/Dockerfile | 2 +- 32-stf-client/Dockerfile | 2 +- 32/Dockerfile | 2 +- 33-emulator/Dockerfile | 2 +- 33-ndk/Dockerfile | 2 +- 33-stf-client/Dockerfile | 2 +- 33/Dockerfile | 2 +- update.sh | 4 ++-- 16 files changed, 17 insertions(+), 17 deletions(-) diff --git a/30-emulator/Dockerfile b/30-emulator/Dockerfile index cf0a7f6..c97f608 100644 --- a/30-emulator/Dockerfile +++ b/30-emulator/Dockerfile @@ -7,7 +7,7 @@ RUN apt-get update \ expect \ locales \ nano \ - openjdk-11-jdk \ + openjdk-17-jdk \ unzip \ curl \ xz-utils \ diff --git a/30-ndk/Dockerfile b/30-ndk/Dockerfile index 4fb2d52..c7cfff9 100644 --- a/30-ndk/Dockerfile +++ b/30-ndk/Dockerfile @@ -7,7 +7,7 @@ RUN apt-get update \ expect \ locales \ nano \ - openjdk-11-jdk \ + openjdk-17-jdk \ unzip \ curl \ xz-utils \ diff --git a/30-stf-client/Dockerfile b/30-stf-client/Dockerfile index 8efd86b..cb05a07 100644 --- a/30-stf-client/Dockerfile +++ b/30-stf-client/Dockerfile @@ -7,7 +7,7 @@ RUN apt-get update \ expect \ locales \ nano \ - openjdk-11-jdk \ + openjdk-17-jdk \ unzip \ curl \ xz-utils \ diff --git a/30/Dockerfile b/30/Dockerfile index 069625e..58cf809 100644 --- a/30/Dockerfile +++ b/30/Dockerfile @@ -7,7 +7,7 @@ RUN apt-get update \ expect \ locales \ nano \ - openjdk-11-jdk \ + openjdk-17-jdk \ unzip \ curl \ xz-utils \ diff --git a/31-emulator/Dockerfile b/31-emulator/Dockerfile index 60d05f3..6286c34 100644 --- a/31-emulator/Dockerfile +++ b/31-emulator/Dockerfile @@ -7,7 +7,7 @@ RUN apt-get update \ expect \ locales \ nano \ - openjdk-11-jdk \ + openjdk-17-jdk \ unzip \ curl \ xz-utils \ diff --git a/31-stf-client/Dockerfile b/31-stf-client/Dockerfile index fe345d0..dad6b7d 100644 --- a/31-stf-client/Dockerfile +++ b/31-stf-client/Dockerfile @@ -7,7 +7,7 @@ RUN apt-get update \ expect \ locales \ nano \ - openjdk-11-jdk \ + openjdk-17-jdk \ unzip \ curl \ xz-utils \ diff --git a/31/Dockerfile b/31/Dockerfile index 1898b6b..8455b19 100644 --- a/31/Dockerfile +++ b/31/Dockerfile @@ -7,7 +7,7 @@ RUN apt-get update \ expect \ locales \ nano \ - openjdk-11-jdk \ + openjdk-17-jdk \ unzip \ curl \ xz-utils \ diff --git a/32-emulator/Dockerfile b/32-emulator/Dockerfile index 9a83206..ced65df 100644 --- a/32-emulator/Dockerfile +++ b/32-emulator/Dockerfile @@ -7,7 +7,7 @@ RUN apt-get update \ expect \ locales \ nano \ - openjdk-11-jdk \ + openjdk-17-jdk \ unzip \ curl \ xz-utils \ diff --git a/32-ndk/Dockerfile b/32-ndk/Dockerfile index 0f7dae6..ecd9d6e 100644 --- a/32-ndk/Dockerfile +++ b/32-ndk/Dockerfile @@ -7,7 +7,7 @@ RUN apt-get update \ expect \ locales \ nano \ - openjdk-11-jdk \ + openjdk-17-jdk \ unzip \ curl \ xz-utils \ diff --git a/32-stf-client/Dockerfile b/32-stf-client/Dockerfile index 5d40bf3..ddd156a 100644 --- a/32-stf-client/Dockerfile +++ b/32-stf-client/Dockerfile @@ -7,7 +7,7 @@ RUN apt-get update \ expect \ locales \ nano \ - openjdk-11-jdk \ + openjdk-17-jdk \ unzip \ curl \ xz-utils \ diff --git a/32/Dockerfile b/32/Dockerfile index f46d428..fecb2b8 100644 --- a/32/Dockerfile +++ b/32/Dockerfile @@ -7,7 +7,7 @@ RUN apt-get update \ expect \ locales \ nano \ - openjdk-11-jdk \ + openjdk-17-jdk \ unzip \ curl \ xz-utils \ diff --git a/33-emulator/Dockerfile b/33-emulator/Dockerfile index 69020c7..e06b563 100644 --- a/33-emulator/Dockerfile +++ b/33-emulator/Dockerfile @@ -7,7 +7,7 @@ RUN apt-get update \ expect \ locales \ nano \ - openjdk-11-jdk \ + openjdk-17-jdk \ unzip \ curl \ xz-utils \ diff --git a/33-ndk/Dockerfile b/33-ndk/Dockerfile index 97de852..31ca75d 100644 --- a/33-ndk/Dockerfile +++ b/33-ndk/Dockerfile @@ -7,7 +7,7 @@ RUN apt-get update \ expect \ locales \ nano \ - openjdk-11-jdk \ + openjdk-17-jdk \ unzip \ curl \ xz-utils \ diff --git a/33-stf-client/Dockerfile b/33-stf-client/Dockerfile index 0b2d13a..8882e30 100644 --- a/33-stf-client/Dockerfile +++ b/33-stf-client/Dockerfile @@ -7,7 +7,7 @@ RUN apt-get update \ expect \ locales \ nano \ - openjdk-11-jdk \ + openjdk-17-jdk \ unzip \ curl \ xz-utils \ diff --git a/33/Dockerfile b/33/Dockerfile index dd4b348..ad23613 100644 --- a/33/Dockerfile +++ b/33/Dockerfile @@ -7,7 +7,7 @@ RUN apt-get update \ expect \ locales \ nano \ - openjdk-11-jdk \ + openjdk-17-jdk \ unzip \ curl \ xz-utils \ diff --git a/update.sh b/update.sh index 5d86068..bca4573 100755 --- a/update.sh +++ b/update.sh @@ -12,8 +12,8 @@ declare -A default_node_variants=( ['33']='18' ) -jdk_variants=('11') -default_jdk_variant='11' +jdk_variants=('17') +default_jdk_variant='17' declare -A build_tools=( ['30']='30.0.3' From 4e6ce20450d55895b8bb80b1f51b7ec7dc30ac5d Mon Sep 17 00:00:00 2001 From: Oleksandr Bezpalchuk Date: Thu, 9 May 2024 17:46:23 +0300 Subject: [PATCH 2/6] Revert default jdk from 17 to 11 --- 30-emulator/Dockerfile | 2 +- 30-ndk/Dockerfile | 2 +- 30-stf-client/Dockerfile | 2 +- 30/Dockerfile | 2 +- 31-emulator/Dockerfile | 2 +- 31-stf-client/Dockerfile | 2 +- 31/Dockerfile | 2 +- 32-emulator/Dockerfile | 2 +- 32-ndk/Dockerfile | 2 +- 32-stf-client/Dockerfile | 2 +- 32/Dockerfile | 2 +- 33-emulator/Dockerfile | 2 +- 33-ndk/Dockerfile | 2 +- 33-stf-client/Dockerfile | 2 +- 33/Dockerfile | 2 +- update.sh | 4 ++-- 16 files changed, 17 insertions(+), 17 deletions(-) diff --git a/30-emulator/Dockerfile b/30-emulator/Dockerfile index c97f608..cf0a7f6 100644 --- a/30-emulator/Dockerfile +++ b/30-emulator/Dockerfile @@ -7,7 +7,7 @@ RUN apt-get update \ expect \ locales \ nano \ - openjdk-17-jdk \ + openjdk-11-jdk \ unzip \ curl \ xz-utils \ diff --git a/30-ndk/Dockerfile b/30-ndk/Dockerfile index c7cfff9..4fb2d52 100644 --- a/30-ndk/Dockerfile +++ b/30-ndk/Dockerfile @@ -7,7 +7,7 @@ RUN apt-get update \ expect \ locales \ nano \ - openjdk-17-jdk \ + openjdk-11-jdk \ unzip \ curl \ xz-utils \ diff --git a/30-stf-client/Dockerfile b/30-stf-client/Dockerfile index cb05a07..8efd86b 100644 --- a/30-stf-client/Dockerfile +++ b/30-stf-client/Dockerfile @@ -7,7 +7,7 @@ RUN apt-get update \ expect \ locales \ nano \ - openjdk-17-jdk \ + openjdk-11-jdk \ unzip \ curl \ xz-utils \ diff --git a/30/Dockerfile b/30/Dockerfile index 58cf809..069625e 100644 --- a/30/Dockerfile +++ b/30/Dockerfile @@ -7,7 +7,7 @@ RUN apt-get update \ expect \ locales \ nano \ - openjdk-17-jdk \ + openjdk-11-jdk \ unzip \ curl \ xz-utils \ diff --git a/31-emulator/Dockerfile b/31-emulator/Dockerfile index 6286c34..60d05f3 100644 --- a/31-emulator/Dockerfile +++ b/31-emulator/Dockerfile @@ -7,7 +7,7 @@ RUN apt-get update \ expect \ locales \ nano \ - openjdk-17-jdk \ + openjdk-11-jdk \ unzip \ curl \ xz-utils \ diff --git a/31-stf-client/Dockerfile b/31-stf-client/Dockerfile index dad6b7d..fe345d0 100644 --- a/31-stf-client/Dockerfile +++ b/31-stf-client/Dockerfile @@ -7,7 +7,7 @@ RUN apt-get update \ expect \ locales \ nano \ - openjdk-17-jdk \ + openjdk-11-jdk \ unzip \ curl \ xz-utils \ diff --git a/31/Dockerfile b/31/Dockerfile index 8455b19..1898b6b 100644 --- a/31/Dockerfile +++ b/31/Dockerfile @@ -7,7 +7,7 @@ RUN apt-get update \ expect \ locales \ nano \ - openjdk-17-jdk \ + openjdk-11-jdk \ unzip \ curl \ xz-utils \ diff --git a/32-emulator/Dockerfile b/32-emulator/Dockerfile index ced65df..9a83206 100644 --- a/32-emulator/Dockerfile +++ b/32-emulator/Dockerfile @@ -7,7 +7,7 @@ RUN apt-get update \ expect \ locales \ nano \ - openjdk-17-jdk \ + openjdk-11-jdk \ unzip \ curl \ xz-utils \ diff --git a/32-ndk/Dockerfile b/32-ndk/Dockerfile index ecd9d6e..0f7dae6 100644 --- a/32-ndk/Dockerfile +++ b/32-ndk/Dockerfile @@ -7,7 +7,7 @@ RUN apt-get update \ expect \ locales \ nano \ - openjdk-17-jdk \ + openjdk-11-jdk \ unzip \ curl \ xz-utils \ diff --git a/32-stf-client/Dockerfile b/32-stf-client/Dockerfile index ddd156a..5d40bf3 100644 --- a/32-stf-client/Dockerfile +++ b/32-stf-client/Dockerfile @@ -7,7 +7,7 @@ RUN apt-get update \ expect \ locales \ nano \ - openjdk-17-jdk \ + openjdk-11-jdk \ unzip \ curl \ xz-utils \ diff --git a/32/Dockerfile b/32/Dockerfile index fecb2b8..f46d428 100644 --- a/32/Dockerfile +++ b/32/Dockerfile @@ -7,7 +7,7 @@ RUN apt-get update \ expect \ locales \ nano \ - openjdk-17-jdk \ + openjdk-11-jdk \ unzip \ curl \ xz-utils \ diff --git a/33-emulator/Dockerfile b/33-emulator/Dockerfile index e06b563..69020c7 100644 --- a/33-emulator/Dockerfile +++ b/33-emulator/Dockerfile @@ -7,7 +7,7 @@ RUN apt-get update \ expect \ locales \ nano \ - openjdk-17-jdk \ + openjdk-11-jdk \ unzip \ curl \ xz-utils \ diff --git a/33-ndk/Dockerfile b/33-ndk/Dockerfile index 31ca75d..97de852 100644 --- a/33-ndk/Dockerfile +++ b/33-ndk/Dockerfile @@ -7,7 +7,7 @@ RUN apt-get update \ expect \ locales \ nano \ - openjdk-17-jdk \ + openjdk-11-jdk \ unzip \ curl \ xz-utils \ diff --git a/33-stf-client/Dockerfile b/33-stf-client/Dockerfile index 8882e30..0b2d13a 100644 --- a/33-stf-client/Dockerfile +++ b/33-stf-client/Dockerfile @@ -7,7 +7,7 @@ RUN apt-get update \ expect \ locales \ nano \ - openjdk-17-jdk \ + openjdk-11-jdk \ unzip \ curl \ xz-utils \ diff --git a/33/Dockerfile b/33/Dockerfile index ad23613..dd4b348 100644 --- a/33/Dockerfile +++ b/33/Dockerfile @@ -7,7 +7,7 @@ RUN apt-get update \ expect \ locales \ nano \ - openjdk-17-jdk \ + openjdk-11-jdk \ unzip \ curl \ xz-utils \ diff --git a/update.sh b/update.sh index bca4573..5d86068 100755 --- a/update.sh +++ b/update.sh @@ -12,8 +12,8 @@ declare -A default_node_variants=( ['33']='18' ) -jdk_variants=('17') -default_jdk_variant='17' +jdk_variants=('11') +default_jdk_variant='11' declare -A build_tools=( ['30']='30.0.3' From 44eb55f07e3d54bb9a198195b96cde869a669035 Mon Sep 17 00:00:00 2001 From: Oleksandr Bezpalchuk Date: Thu, 9 May 2024 17:57:35 +0300 Subject: [PATCH 3/6] added a new image for jdk17 specifically --- 33-jdk17-emulator/Dockerfile | 119 ++++++++++++++++++ .../tools-emulator/android-start-emulator | 9 ++ .../tools-emulator/android-wait-for-emulator | 30 +++++ 33-jdk17-emulator/tools/adb-all | 19 +++ 33-jdk17-emulator/tools/license_accepter | 47 +++++++ 33-jdk17-ndk/Dockerfile | 104 +++++++++++++++ 33-jdk17-ndk/tools/adb-all | 19 +++ 33-jdk17-ndk/tools/license_accepter | 47 +++++++ 33-jdk17-stf-client/Dockerfile | 117 +++++++++++++++++ 33-jdk17-stf-client/tools/adb-all | 19 +++ 33-jdk17-stf-client/tools/license_accepter | 47 +++++++ 33-jdk17/Dockerfile | 98 +++++++++++++++ 33-jdk17/tools/adb-all | 19 +++ 33-jdk17/tools/license_accepter | 47 +++++++ 14 files changed, 741 insertions(+) create mode 100644 33-jdk17-emulator/Dockerfile create mode 100755 33-jdk17-emulator/tools-emulator/android-start-emulator create mode 100755 33-jdk17-emulator/tools-emulator/android-wait-for-emulator create mode 100755 33-jdk17-emulator/tools/adb-all create mode 100755 33-jdk17-emulator/tools/license_accepter create mode 100644 33-jdk17-ndk/Dockerfile create mode 100755 33-jdk17-ndk/tools/adb-all create mode 100755 33-jdk17-ndk/tools/license_accepter create mode 100644 33-jdk17-stf-client/Dockerfile create mode 100755 33-jdk17-stf-client/tools/adb-all create mode 100755 33-jdk17-stf-client/tools/license_accepter create mode 100644 33-jdk17/Dockerfile create mode 100755 33-jdk17/tools/adb-all create mode 100755 33-jdk17/tools/license_accepter diff --git a/33-jdk17-emulator/Dockerfile b/33-jdk17-emulator/Dockerfile new file mode 100644 index 0000000..e06b563 --- /dev/null +++ b/33-jdk17-emulator/Dockerfile @@ -0,0 +1,119 @@ +FROM ubuntu:focal +SHELL ["/bin/bash", "-o", "pipefail", "-c"] + +# hadolint ignore=DL3008 +RUN apt-get update \ + && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ + expect \ + locales \ + nano \ + openjdk-17-jdk \ + unzip \ + curl \ + xz-utils \ + git \ + && rm -rf /var/lib/apt/lists/* + +# Seems somethings build better with utf8 locale specified +# http://jaredmarkell.com/docker-and-locales/ +# https://github.com/square/moshi/issues/804#issuecomment-466926878 +RUN locale-gen en_US.UTF-8 +ENV LANG=en_US.UTF-8 +ENV LANGUAGE=en_US:en +ENV LC_ALL=en_US.UTF-8 + +#### +# hadolint ignore=DL3008 +RUN apt-get update \ + && apt-get install -y --no-install-recommends \ + apt-transport-https \ + gnupg \ + lsb-release \ + # For nodejs we use nodesource, its nice and easy and gets us the correct version + # Find latest link https://github.com/nodesource/distributions/blob/master/README.md#installation-instructions + && curl -sSL https://deb.nodesource.com/gpgkey/nodesource.gpg.key | apt-key add - \ + && echo "deb https://deb.nodesource.com/node_18.x $(lsb_release -s -c) main" | tee /etc/apt/sources.list.d/nodesource.list \ + && echo "deb-src https://deb.nodesource.com/node_18.x $(lsb_release -s -c) main" | tee -a /etc/apt/sources.list.d/nodesource.list \ + && apt-get update \ + && apt-get install -y --no-install-recommends \ + nodejs \ + && rm -rf /var/lib/apt/lists/* + +# hadolint ignore=DL3016 +RUN npm -g install xcode-build-tools yarn +#### + +# Install the SDK +# https://developer.android.com/studio#downloads +ENV ANDROID_CMDLINE_TOOLS=https://dl.google.com/android/repository/commandlinetools-linux-9477386_latest.zip +# hadolint ignore=DL3003 +RUN ( \ + cd /opt \ + && mkdir android-sdk-linux \ + && curl -sSL -o cmdline-tools.zip "$ANDROID_CMDLINE_TOOLS" \ + && unzip cmdline-tools.zip -d android-sdk-linux/cmdline-tools \ + && rm -f cmdline-tools.zip \ + && chown -R root:root android-sdk-linux \ + ) + +ENV ANDROID_SDK_ROOT=/opt/android-sdk-linux +ENV ANDROID_HOME=$ANDROID_SDK_ROOT +ENV PATH=$ANDROID_HOME/cmdline-tools/cmdline-tools/bin:$ANDROID_HOME/cmdline-tools/tools/bin:$ANDROID_SDK_ROOT/tools/bin:$ANDROID_SDK_ROOT/tools:$ANDROID_SDK_ROOT/platform-tools:$PATH + +# Install custom tools +COPY tools/license_accepter /opt/tools/ +COPY tools/adb-all /opt/tools +ENV PATH=/opt/tools:$PATH +RUN license_accepter + +# Install Android platform and things +ENV ANDROID_PLATFORM_VERSION=33 +ENV ANDROID_BUILD_TOOLS_VERSION=33.0.0 +ENV PATH=$ANDROID_SDK_ROOT/build-tools/$ANDROID_BUILD_TOOLS_VERSION:$PATH +ENV ANDROID_EXTRA_PACKAGES="build-tools;33.0.0 build-tools;33.0.1 build-tools;33.0.2" +ENV ANDROID_REPOSITORIES="extras;android;m2repository extras;google;m2repository" +ENV ANDROID_CONSTRAINT_PACKAGES="extras;m2repository;com;android;support;constraint;constraint-layout;1.0.2 extras;m2repository;com;android;support;constraint;constraint-layout;1.0.1 extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0" +RUN sdkmanager --verbose "platform-tools" "platforms;android-$ANDROID_PLATFORM_VERSION" "build-tools;$ANDROID_BUILD_TOOLS_VERSION" $ANDROID_EXTRA_PACKAGES $ANDROID_REPOSITORIES $ANDROID_CONSTRAINT_PACKAGES + + +#### +# hadolint ignore=DL3008 +RUN apt-get update \ + && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ + file \ + qt5-default \ + libpulse0 \ + && rm -rf /var/lib/apt/lists/* + +ENV ANDROID_EMULATOR_PACKAGE="system-images;android-$ANDROID_PLATFORM_VERSION;google_apis_playstore;x86_64" +RUN sdkmanager --verbose "emulator" $ANDROID_EMULATOR_PACKAGE + +# Fix for emulator detect 64bit +ENV SHELL=/bin/bash +# https://www.bram.us/2017/05/12/launching-the-android-emulator-from-the-command-line/ +ENV PATH=$ANDROID_SDK_ROOT/emulator:$PATH + +COPY tools-emulator/android-start-emulator /opt/tools/ +COPY tools-emulator/android-wait-for-emulator /opt/tools/ +RUN adb keygen ~/.android/adbkey +#### + + +#### +RUN apt-get update \ +&& apt-get -y --no-install-recommends install imagemagick=8:6.9.10.23+dfsg-2.1ubuntu11 \ +&& rm -rf /var/lib/apt/lists/* \ +&& curl -k -0L https://github.com/postmodern/ruby-install/archive/master.tar.gz -o ruby-install.tar.gz \ +&& tar -xzvf ruby-install.tar.gz +WORKDIR /ruby-install-master +RUN apt-get update && apt-get -y --no-install-recommends install make=4.2.1-1.2 \ +&& rm -rf /var/lib/apt/lists/* \ +&& make install +WORKDIR / +RUN apt-get update \ +&& rm -rf ruby-install-master && rm -rf ruby-install.tar.gz \ +&& ruby-install --latest \ +&& ruby-install -i /usr/local/ ruby 2.6.8 -- --disable-install-doc \ +&& gem update --system --no-document \ +&& gem install bundler:1.17.3 --force +#### diff --git a/33-jdk17-emulator/tools-emulator/android-start-emulator b/33-jdk17-emulator/tools-emulator/android-start-emulator new file mode 100755 index 0000000..998d92a --- /dev/null +++ b/33-jdk17-emulator/tools-emulator/android-start-emulator @@ -0,0 +1,9 @@ +#!/bin/bash +set -e + +# shellcheck disable=SC2086 +avdmanager create avd --package "$ANDROID_EMULATOR_PACKAGE" --name "${AVD_NAME:-test}" --abi "google_apis_playstore/x86_64" --device "${AVD_DEVICE:-pixel}" --force ${AVD_ARGS:-} +# shellcheck disable=SC2086 +emulator -avd "${AVD_NAME:-test}" -no-audio -no-boot-anim -no-window -accel on -gpu off ${EMULATOR_ARGS:-} & +android-wait-for-emulator +adb shell input keyevent 82 diff --git a/33-jdk17-emulator/tools-emulator/android-wait-for-emulator b/33-jdk17-emulator/tools-emulator/android-wait-for-emulator new file mode 100755 index 0000000..2bc2fb5 --- /dev/null +++ b/33-jdk17-emulator/tools-emulator/android-wait-for-emulator @@ -0,0 +1,30 @@ +#!/bin/bash +set -e +# Originally written by Ralf Kistner , but placed in the public domain + +sleep_time=5 +timeout_in_sec=60 + +fail_counter=0 +until [[ "$(adb -e shell getprop init.svc.bootanim)" =~ "stopped" ]]; do + ((fail_counter += sleep_time)) + echo "Waiting for emulator to start (bootanim)" + if [[ $fail_counter -gt timeout_in_sec ]]; then + echo "Timeout ($timeout_in_sec seconds) reached; failed to start emulator" + exit 1 + fi + sleep $sleep_time +done + +fail_counter=0 +until [[ "$(adb -e shell getprop sys.boot_completed)" == "1" ]]; do + ((fail_counter += sleep_time)) + echo "Waiting for emulator to start (boot_completed)" + if [[ $fail_counter -gt timeout_in_sec ]]; then + echo "Timeout ($timeout_in_sec seconds) reached; failed to start emulator" + exit 1 + fi + sleep $sleep_time +done + +echo "Emulator is ready" diff --git a/33-jdk17-emulator/tools/adb-all b/33-jdk17-emulator/tools/adb-all new file mode 100755 index 0000000..04992da --- /dev/null +++ b/33-jdk17-emulator/tools/adb-all @@ -0,0 +1,19 @@ +#!/bin/bash +# Script adb-all +# Taken from https://stackoverflow.com/a/8672540/859027 +# Usage +# You can run any command adb provide on all your current devices +# ./adb-all is the equivalent of ./adb -s +# +# Examples +# ./adb-all version +# ./adb-all install apidemo.apk +# ./adb-all uninstall com.example.android.apis + +adb devices | while read -r line; do + if [ ! "$line" = "" ] && [ "$(echo "$line" | awk '{print $2}')" = "device" ]; then + device=$(echo "$line" | awk '{print $1}') + echo "$device $* ..." + adb -s "$device" "$@" + fi +done diff --git a/33-jdk17-emulator/tools/license_accepter b/33-jdk17-emulator/tools/license_accepter new file mode 100755 index 0000000..388d973 --- /dev/null +++ b/33-jdk17-emulator/tools/license_accepter @@ -0,0 +1,47 @@ +#!/bin/bash + +check_android_sdk_root() { + if [ "$#" -lt 1 ]; then + if [ -z "${ANDROID_SDK_ROOT}" ]; then + echo "Please either set ANDROID_SDK_ROOT environment variable, or pass ANDROID_SDK_ROOT directory as a parameter" + exit 1 + fi + else + ANDROID_SDK_ROOT=$1 + fi + echo "ANDROID_SDK_ROOT is at $ANDROID_SDK_ROOT" +} + +accept_all_android_licenses() { + ANDROID_LICENSES="$ANDROID_SDK_ROOT/licenses" + if [ ! -d "$ANDROID_LICENSES" ]; then + echo "Android licenses directory doesn't exist, creating one..." + mkdir -p "$ANDROID_LICENSES" + fi + accept_license_of android-sdk-license 8933bad161af4178b1185d1a37fbf41ea5269c55 + accept_license_of android-sdk-license d56f5187479451eabf01fb78af6dfcb131a6481e + accept_license_of android-sdk-license 24333f8a63b6825ea9c5514f83c2829b004d1fee + accept_license_of android-sdk-preview-license 84831b9409646a918e30573bab4c9c91346d8abd + accept_license_of intel-android-extra-license d975f751698a77b662f1254ddbeed3901e976f5a + accept_license_of android-sdk-arm-dbt-license 859f317696f67ef3d7f30a50a5560e7834b43903 +} + +accept_license_of() { + local license=$1 + local content=$2 + local file=$ANDROID_LICENSES/$license + if [ -f "$file" ]; then + if grep -q "^$content$" "$file"; then + echo "$license: $content has been accepted already" + else + echo "Accepting $license: $content ..." + echo -e "$content" >>"$file" + fi + else + echo "Accepting $license: $content ..." + echo -e "$content" >"$file" + fi +} + +check_android_sdk_root "$@" +accept_all_android_licenses diff --git a/33-jdk17-ndk/Dockerfile b/33-jdk17-ndk/Dockerfile new file mode 100644 index 0000000..31ca75d --- /dev/null +++ b/33-jdk17-ndk/Dockerfile @@ -0,0 +1,104 @@ +FROM ubuntu:focal +SHELL ["/bin/bash", "-o", "pipefail", "-c"] + +# hadolint ignore=DL3008 +RUN apt-get update \ + && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ + expect \ + locales \ + nano \ + openjdk-17-jdk \ + unzip \ + curl \ + xz-utils \ + git \ + && rm -rf /var/lib/apt/lists/* + +# Seems somethings build better with utf8 locale specified +# http://jaredmarkell.com/docker-and-locales/ +# https://github.com/square/moshi/issues/804#issuecomment-466926878 +RUN locale-gen en_US.UTF-8 +ENV LANG=en_US.UTF-8 +ENV LANGUAGE=en_US:en +ENV LC_ALL=en_US.UTF-8 + +#### +# hadolint ignore=DL3008 +RUN apt-get update \ + && apt-get install -y --no-install-recommends \ + apt-transport-https \ + gnupg \ + lsb-release \ + # For nodejs we use nodesource, its nice and easy and gets us the correct version + # Find latest link https://github.com/nodesource/distributions/blob/master/README.md#installation-instructions + && curl -sSL https://deb.nodesource.com/gpgkey/nodesource.gpg.key | apt-key add - \ + && echo "deb https://deb.nodesource.com/node_18.x $(lsb_release -s -c) main" | tee /etc/apt/sources.list.d/nodesource.list \ + && echo "deb-src https://deb.nodesource.com/node_18.x $(lsb_release -s -c) main" | tee -a /etc/apt/sources.list.d/nodesource.list \ + && apt-get update \ + && apt-get install -y --no-install-recommends \ + nodejs \ + && rm -rf /var/lib/apt/lists/* + +# hadolint ignore=DL3016 +RUN npm -g install xcode-build-tools yarn +#### + +# Install the SDK +# https://developer.android.com/studio#downloads +ENV ANDROID_CMDLINE_TOOLS=https://dl.google.com/android/repository/commandlinetools-linux-9477386_latest.zip +# hadolint ignore=DL3003 +RUN ( \ + cd /opt \ + && mkdir android-sdk-linux \ + && curl -sSL -o cmdline-tools.zip "$ANDROID_CMDLINE_TOOLS" \ + && unzip cmdline-tools.zip -d android-sdk-linux/cmdline-tools \ + && rm -f cmdline-tools.zip \ + && chown -R root:root android-sdk-linux \ + ) + +ENV ANDROID_SDK_ROOT=/opt/android-sdk-linux +ENV ANDROID_HOME=$ANDROID_SDK_ROOT +ENV PATH=$ANDROID_HOME/cmdline-tools/cmdline-tools/bin:$ANDROID_HOME/cmdline-tools/tools/bin:$ANDROID_SDK_ROOT/tools/bin:$ANDROID_SDK_ROOT/tools:$ANDROID_SDK_ROOT/platform-tools:$PATH + +# Install custom tools +COPY tools/license_accepter /opt/tools/ +COPY tools/adb-all /opt/tools +ENV PATH=/opt/tools:$PATH +RUN license_accepter + +# Install Android platform and things +ENV ANDROID_PLATFORM_VERSION=33 +ENV ANDROID_BUILD_TOOLS_VERSION=33.0.0 +ENV PATH=$ANDROID_SDK_ROOT/build-tools/$ANDROID_BUILD_TOOLS_VERSION:$PATH +ENV ANDROID_EXTRA_PACKAGES="build-tools;33.0.0 build-tools;33.0.1 build-tools;33.0.2" +ENV ANDROID_REPOSITORIES="extras;android;m2repository extras;google;m2repository" +ENV ANDROID_CONSTRAINT_PACKAGES="extras;m2repository;com;android;support;constraint;constraint-layout;1.0.2 extras;m2repository;com;android;support;constraint;constraint-layout;1.0.1 extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0" +RUN sdkmanager --verbose "platform-tools" "platforms;android-$ANDROID_PLATFORM_VERSION" "build-tools;$ANDROID_BUILD_TOOLS_VERSION" $ANDROID_EXTRA_PACKAGES $ANDROID_REPOSITORIES $ANDROID_CONSTRAINT_PACKAGES + + + +#### +ENV ANDROID_NDK_PACKAGES="ndk-bundle cmake;3.10.2.4988404 cmake;3.6.4111459 cmake;3.18.1" +ENV ANDROID_NDK_ROOT=$ANDROID_HOME/ndk-bundle +ENV ANDROID_NDK_HOME=$ANDROID_NDK_ROOT +RUN sdkmanager --verbose $ANDROID_NDK_PACKAGES +#### + +#### +RUN apt-get update \ +&& apt-get -y --no-install-recommends install imagemagick=8:6.9.10.23+dfsg-2.1ubuntu11 \ +&& rm -rf /var/lib/apt/lists/* \ +&& curl -k -0L https://github.com/postmodern/ruby-install/archive/master.tar.gz -o ruby-install.tar.gz \ +&& tar -xzvf ruby-install.tar.gz +WORKDIR /ruby-install-master +RUN apt-get update && apt-get -y --no-install-recommends install make=4.2.1-1.2 \ +&& rm -rf /var/lib/apt/lists/* \ +&& make install +WORKDIR / +RUN apt-get update \ +&& rm -rf ruby-install-master && rm -rf ruby-install.tar.gz \ +&& ruby-install --latest \ +&& ruby-install -i /usr/local/ ruby 2.6.8 -- --disable-install-doc \ +&& gem update --system --no-document \ +&& gem install bundler:1.17.3 --force +#### diff --git a/33-jdk17-ndk/tools/adb-all b/33-jdk17-ndk/tools/adb-all new file mode 100755 index 0000000..04992da --- /dev/null +++ b/33-jdk17-ndk/tools/adb-all @@ -0,0 +1,19 @@ +#!/bin/bash +# Script adb-all +# Taken from https://stackoverflow.com/a/8672540/859027 +# Usage +# You can run any command adb provide on all your current devices +# ./adb-all is the equivalent of ./adb -s +# +# Examples +# ./adb-all version +# ./adb-all install apidemo.apk +# ./adb-all uninstall com.example.android.apis + +adb devices | while read -r line; do + if [ ! "$line" = "" ] && [ "$(echo "$line" | awk '{print $2}')" = "device" ]; then + device=$(echo "$line" | awk '{print $1}') + echo "$device $* ..." + adb -s "$device" "$@" + fi +done diff --git a/33-jdk17-ndk/tools/license_accepter b/33-jdk17-ndk/tools/license_accepter new file mode 100755 index 0000000..388d973 --- /dev/null +++ b/33-jdk17-ndk/tools/license_accepter @@ -0,0 +1,47 @@ +#!/bin/bash + +check_android_sdk_root() { + if [ "$#" -lt 1 ]; then + if [ -z "${ANDROID_SDK_ROOT}" ]; then + echo "Please either set ANDROID_SDK_ROOT environment variable, or pass ANDROID_SDK_ROOT directory as a parameter" + exit 1 + fi + else + ANDROID_SDK_ROOT=$1 + fi + echo "ANDROID_SDK_ROOT is at $ANDROID_SDK_ROOT" +} + +accept_all_android_licenses() { + ANDROID_LICENSES="$ANDROID_SDK_ROOT/licenses" + if [ ! -d "$ANDROID_LICENSES" ]; then + echo "Android licenses directory doesn't exist, creating one..." + mkdir -p "$ANDROID_LICENSES" + fi + accept_license_of android-sdk-license 8933bad161af4178b1185d1a37fbf41ea5269c55 + accept_license_of android-sdk-license d56f5187479451eabf01fb78af6dfcb131a6481e + accept_license_of android-sdk-license 24333f8a63b6825ea9c5514f83c2829b004d1fee + accept_license_of android-sdk-preview-license 84831b9409646a918e30573bab4c9c91346d8abd + accept_license_of intel-android-extra-license d975f751698a77b662f1254ddbeed3901e976f5a + accept_license_of android-sdk-arm-dbt-license 859f317696f67ef3d7f30a50a5560e7834b43903 +} + +accept_license_of() { + local license=$1 + local content=$2 + local file=$ANDROID_LICENSES/$license + if [ -f "$file" ]; then + if grep -q "^$content$" "$file"; then + echo "$license: $content has been accepted already" + else + echo "Accepting $license: $content ..." + echo -e "$content" >>"$file" + fi + else + echo "Accepting $license: $content ..." + echo -e "$content" >"$file" + fi +} + +check_android_sdk_root "$@" +accept_all_android_licenses diff --git a/33-jdk17-stf-client/Dockerfile b/33-jdk17-stf-client/Dockerfile new file mode 100644 index 0000000..8882e30 --- /dev/null +++ b/33-jdk17-stf-client/Dockerfile @@ -0,0 +1,117 @@ +FROM ubuntu:focal +SHELL ["/bin/bash", "-o", "pipefail", "-c"] + +# hadolint ignore=DL3008 +RUN apt-get update \ + && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ + expect \ + locales \ + nano \ + openjdk-17-jdk \ + unzip \ + curl \ + xz-utils \ + git \ + && rm -rf /var/lib/apt/lists/* + +# Seems somethings build better with utf8 locale specified +# http://jaredmarkell.com/docker-and-locales/ +# https://github.com/square/moshi/issues/804#issuecomment-466926878 +RUN locale-gen en_US.UTF-8 +ENV LANG=en_US.UTF-8 +ENV LANGUAGE=en_US:en +ENV LC_ALL=en_US.UTF-8 + +#### +# hadolint ignore=DL3008 +RUN apt-get update \ + && apt-get install -y --no-install-recommends \ + apt-transport-https \ + gnupg \ + lsb-release \ + # For nodejs we use nodesource, its nice and easy and gets us the correct version + # Find latest link https://github.com/nodesource/distributions/blob/master/README.md#installation-instructions + && curl -sSL https://deb.nodesource.com/gpgkey/nodesource.gpg.key | apt-key add - \ + && echo "deb https://deb.nodesource.com/node_18.x $(lsb_release -s -c) main" | tee /etc/apt/sources.list.d/nodesource.list \ + && echo "deb-src https://deb.nodesource.com/node_18.x $(lsb_release -s -c) main" | tee -a /etc/apt/sources.list.d/nodesource.list \ + && apt-get update \ + && apt-get install -y --no-install-recommends \ + nodejs \ + && rm -rf /var/lib/apt/lists/* + +# hadolint ignore=DL3016 +RUN npm -g install xcode-build-tools yarn +#### + +# Install the SDK +# https://developer.android.com/studio#downloads +ENV ANDROID_CMDLINE_TOOLS=https://dl.google.com/android/repository/commandlinetools-linux-9477386_latest.zip +# hadolint ignore=DL3003 +RUN ( \ + cd /opt \ + && mkdir android-sdk-linux \ + && curl -sSL -o cmdline-tools.zip "$ANDROID_CMDLINE_TOOLS" \ + && unzip cmdline-tools.zip -d android-sdk-linux/cmdline-tools \ + && rm -f cmdline-tools.zip \ + && chown -R root:root android-sdk-linux \ + ) + +ENV ANDROID_SDK_ROOT=/opt/android-sdk-linux +ENV ANDROID_HOME=$ANDROID_SDK_ROOT +ENV PATH=$ANDROID_HOME/cmdline-tools/cmdline-tools/bin:$ANDROID_HOME/cmdline-tools/tools/bin:$ANDROID_SDK_ROOT/tools/bin:$ANDROID_SDK_ROOT/tools:$ANDROID_SDK_ROOT/platform-tools:$PATH + +# Install custom tools +COPY tools/license_accepter /opt/tools/ +COPY tools/adb-all /opt/tools +ENV PATH=/opt/tools:$PATH +RUN license_accepter + +# Install Android platform and things +ENV ANDROID_PLATFORM_VERSION=33 +ENV ANDROID_BUILD_TOOLS_VERSION=33.0.0 +ENV PATH=$ANDROID_SDK_ROOT/build-tools/$ANDROID_BUILD_TOOLS_VERSION:$PATH +ENV ANDROID_EXTRA_PACKAGES="build-tools;33.0.0 build-tools;33.0.1 build-tools;33.0.2" +ENV ANDROID_REPOSITORIES="extras;android;m2repository extras;google;m2repository" +ENV ANDROID_CONSTRAINT_PACKAGES="extras;m2repository;com;android;support;constraint;constraint-layout;1.0.2 extras;m2repository;com;android;support;constraint;constraint-layout;1.0.1 extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0" +RUN sdkmanager --verbose "platform-tools" "platforms;android-$ANDROID_PLATFORM_VERSION" "build-tools;$ANDROID_BUILD_TOOLS_VERSION" $ANDROID_EXTRA_PACKAGES $ANDROID_REPOSITORIES $ANDROID_CONSTRAINT_PACKAGES + +#### +# hadolint ignore=DL3008,DL3028,SC2086 +RUN apt-get update \ + && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ + ruby \ + && savedAptMark="$(apt-mark showmanual)" \ + && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ + # stf-client + build-essential \ + gem \ + # Without rake fails to install stf-client + && gem install rake stf-client --no-doc \ + && apt-mark auto '.*' > /dev/null \ + && apt-mark manual $savedAptMark > /dev/null \ + && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \ + && rm -rf /var/lib/apt/lists/* \ + +RUN adb keygen ~/.android/adbkey +#### + + + +#### +RUN apt-get update \ +&& apt-get -y --no-install-recommends install imagemagick=8:6.9.10.23+dfsg-2.1ubuntu11 \ +&& rm -rf /var/lib/apt/lists/* \ +&& curl -k -0L https://github.com/postmodern/ruby-install/archive/master.tar.gz -o ruby-install.tar.gz \ +&& tar -xzvf ruby-install.tar.gz +WORKDIR /ruby-install-master +RUN apt-get update && apt-get -y --no-install-recommends install make=4.2.1-1.2 \ +&& rm -rf /var/lib/apt/lists/* \ +&& make install +WORKDIR / +RUN apt-get update \ +&& rm -rf ruby-install-master && rm -rf ruby-install.tar.gz \ +&& ruby-install --latest \ +&& ruby-install -i /usr/local/ ruby 2.6.8 -- --disable-install-doc \ +&& gem update --system --no-document \ +&& gem install bundler:1.17.3 --force +#### diff --git a/33-jdk17-stf-client/tools/adb-all b/33-jdk17-stf-client/tools/adb-all new file mode 100755 index 0000000..04992da --- /dev/null +++ b/33-jdk17-stf-client/tools/adb-all @@ -0,0 +1,19 @@ +#!/bin/bash +# Script adb-all +# Taken from https://stackoverflow.com/a/8672540/859027 +# Usage +# You can run any command adb provide on all your current devices +# ./adb-all is the equivalent of ./adb -s +# +# Examples +# ./adb-all version +# ./adb-all install apidemo.apk +# ./adb-all uninstall com.example.android.apis + +adb devices | while read -r line; do + if [ ! "$line" = "" ] && [ "$(echo "$line" | awk '{print $2}')" = "device" ]; then + device=$(echo "$line" | awk '{print $1}') + echo "$device $* ..." + adb -s "$device" "$@" + fi +done diff --git a/33-jdk17-stf-client/tools/license_accepter b/33-jdk17-stf-client/tools/license_accepter new file mode 100755 index 0000000..388d973 --- /dev/null +++ b/33-jdk17-stf-client/tools/license_accepter @@ -0,0 +1,47 @@ +#!/bin/bash + +check_android_sdk_root() { + if [ "$#" -lt 1 ]; then + if [ -z "${ANDROID_SDK_ROOT}" ]; then + echo "Please either set ANDROID_SDK_ROOT environment variable, or pass ANDROID_SDK_ROOT directory as a parameter" + exit 1 + fi + else + ANDROID_SDK_ROOT=$1 + fi + echo "ANDROID_SDK_ROOT is at $ANDROID_SDK_ROOT" +} + +accept_all_android_licenses() { + ANDROID_LICENSES="$ANDROID_SDK_ROOT/licenses" + if [ ! -d "$ANDROID_LICENSES" ]; then + echo "Android licenses directory doesn't exist, creating one..." + mkdir -p "$ANDROID_LICENSES" + fi + accept_license_of android-sdk-license 8933bad161af4178b1185d1a37fbf41ea5269c55 + accept_license_of android-sdk-license d56f5187479451eabf01fb78af6dfcb131a6481e + accept_license_of android-sdk-license 24333f8a63b6825ea9c5514f83c2829b004d1fee + accept_license_of android-sdk-preview-license 84831b9409646a918e30573bab4c9c91346d8abd + accept_license_of intel-android-extra-license d975f751698a77b662f1254ddbeed3901e976f5a + accept_license_of android-sdk-arm-dbt-license 859f317696f67ef3d7f30a50a5560e7834b43903 +} + +accept_license_of() { + local license=$1 + local content=$2 + local file=$ANDROID_LICENSES/$license + if [ -f "$file" ]; then + if grep -q "^$content$" "$file"; then + echo "$license: $content has been accepted already" + else + echo "Accepting $license: $content ..." + echo -e "$content" >>"$file" + fi + else + echo "Accepting $license: $content ..." + echo -e "$content" >"$file" + fi +} + +check_android_sdk_root "$@" +accept_all_android_licenses diff --git a/33-jdk17/Dockerfile b/33-jdk17/Dockerfile new file mode 100644 index 0000000..ad23613 --- /dev/null +++ b/33-jdk17/Dockerfile @@ -0,0 +1,98 @@ +FROM ubuntu:focal +SHELL ["/bin/bash", "-o", "pipefail", "-c"] + +# hadolint ignore=DL3008 +RUN apt-get update \ + && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ + expect \ + locales \ + nano \ + openjdk-17-jdk \ + unzip \ + curl \ + xz-utils \ + git \ + && rm -rf /var/lib/apt/lists/* + +# Seems somethings build better with utf8 locale specified +# http://jaredmarkell.com/docker-and-locales/ +# https://github.com/square/moshi/issues/804#issuecomment-466926878 +RUN locale-gen en_US.UTF-8 +ENV LANG=en_US.UTF-8 +ENV LANGUAGE=en_US:en +ENV LC_ALL=en_US.UTF-8 + +#### +# hadolint ignore=DL3008 +RUN apt-get update \ + && apt-get install -y --no-install-recommends \ + apt-transport-https \ + gnupg \ + lsb-release \ + # For nodejs we use nodesource, its nice and easy and gets us the correct version + # Find latest link https://github.com/nodesource/distributions/blob/master/README.md#installation-instructions + && curl -sSL https://deb.nodesource.com/gpgkey/nodesource.gpg.key | apt-key add - \ + && echo "deb https://deb.nodesource.com/node_18.x $(lsb_release -s -c) main" | tee /etc/apt/sources.list.d/nodesource.list \ + && echo "deb-src https://deb.nodesource.com/node_18.x $(lsb_release -s -c) main" | tee -a /etc/apt/sources.list.d/nodesource.list \ + && apt-get update \ + && apt-get install -y --no-install-recommends \ + nodejs \ + && rm -rf /var/lib/apt/lists/* + +# hadolint ignore=DL3016 +RUN npm -g install xcode-build-tools yarn +#### + +# Install the SDK +# https://developer.android.com/studio#downloads +ENV ANDROID_CMDLINE_TOOLS=https://dl.google.com/android/repository/commandlinetools-linux-9477386_latest.zip +# hadolint ignore=DL3003 +RUN ( \ + cd /opt \ + && mkdir android-sdk-linux \ + && curl -sSL -o cmdline-tools.zip "$ANDROID_CMDLINE_TOOLS" \ + && unzip cmdline-tools.zip -d android-sdk-linux/cmdline-tools \ + && rm -f cmdline-tools.zip \ + && chown -R root:root android-sdk-linux \ + ) + +ENV ANDROID_SDK_ROOT=/opt/android-sdk-linux +ENV ANDROID_HOME=$ANDROID_SDK_ROOT +ENV PATH=$ANDROID_HOME/cmdline-tools/cmdline-tools/bin:$ANDROID_HOME/cmdline-tools/tools/bin:$ANDROID_SDK_ROOT/tools/bin:$ANDROID_SDK_ROOT/tools:$ANDROID_SDK_ROOT/platform-tools:$PATH + +# Install custom tools +COPY tools/license_accepter /opt/tools/ +COPY tools/adb-all /opt/tools +ENV PATH=/opt/tools:$PATH +RUN license_accepter + +# Install Android platform and things +ENV ANDROID_PLATFORM_VERSION=33 +ENV ANDROID_BUILD_TOOLS_VERSION=33.0.0 +ENV PATH=$ANDROID_SDK_ROOT/build-tools/$ANDROID_BUILD_TOOLS_VERSION:$PATH +ENV ANDROID_EXTRA_PACKAGES="build-tools;33.0.0 build-tools;33.0.1 build-tools;33.0.2" +ENV ANDROID_REPOSITORIES="extras;android;m2repository extras;google;m2repository" +ENV ANDROID_CONSTRAINT_PACKAGES="extras;m2repository;com;android;support;constraint;constraint-layout;1.0.2 extras;m2repository;com;android;support;constraint;constraint-layout;1.0.1 extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0" +RUN sdkmanager --verbose "platform-tools" "platforms;android-$ANDROID_PLATFORM_VERSION" "build-tools;$ANDROID_BUILD_TOOLS_VERSION" $ANDROID_EXTRA_PACKAGES $ANDROID_REPOSITORIES $ANDROID_CONSTRAINT_PACKAGES + + + + +#### +RUN apt-get update \ +&& apt-get -y --no-install-recommends install imagemagick=8:6.9.10.23+dfsg-2.1ubuntu11 \ +&& rm -rf /var/lib/apt/lists/* \ +&& curl -k -0L https://github.com/postmodern/ruby-install/archive/master.tar.gz -o ruby-install.tar.gz \ +&& tar -xzvf ruby-install.tar.gz +WORKDIR /ruby-install-master +RUN apt-get update && apt-get -y --no-install-recommends install make=4.2.1-1.2 \ +&& rm -rf /var/lib/apt/lists/* \ +&& make install +WORKDIR / +RUN apt-get update \ +&& rm -rf ruby-install-master && rm -rf ruby-install.tar.gz \ +&& ruby-install --latest \ +&& ruby-install -i /usr/local/ ruby 2.6.8 -- --disable-install-doc \ +&& gem update --system --no-document \ +&& gem install bundler:1.17.3 --force +#### diff --git a/33-jdk17/tools/adb-all b/33-jdk17/tools/adb-all new file mode 100755 index 0000000..04992da --- /dev/null +++ b/33-jdk17/tools/adb-all @@ -0,0 +1,19 @@ +#!/bin/bash +# Script adb-all +# Taken from https://stackoverflow.com/a/8672540/859027 +# Usage +# You can run any command adb provide on all your current devices +# ./adb-all is the equivalent of ./adb -s +# +# Examples +# ./adb-all version +# ./adb-all install apidemo.apk +# ./adb-all uninstall com.example.android.apis + +adb devices | while read -r line; do + if [ ! "$line" = "" ] && [ "$(echo "$line" | awk '{print $2}')" = "device" ]; then + device=$(echo "$line" | awk '{print $1}') + echo "$device $* ..." + adb -s "$device" "$@" + fi +done diff --git a/33-jdk17/tools/license_accepter b/33-jdk17/tools/license_accepter new file mode 100755 index 0000000..388d973 --- /dev/null +++ b/33-jdk17/tools/license_accepter @@ -0,0 +1,47 @@ +#!/bin/bash + +check_android_sdk_root() { + if [ "$#" -lt 1 ]; then + if [ -z "${ANDROID_SDK_ROOT}" ]; then + echo "Please either set ANDROID_SDK_ROOT environment variable, or pass ANDROID_SDK_ROOT directory as a parameter" + exit 1 + fi + else + ANDROID_SDK_ROOT=$1 + fi + echo "ANDROID_SDK_ROOT is at $ANDROID_SDK_ROOT" +} + +accept_all_android_licenses() { + ANDROID_LICENSES="$ANDROID_SDK_ROOT/licenses" + if [ ! -d "$ANDROID_LICENSES" ]; then + echo "Android licenses directory doesn't exist, creating one..." + mkdir -p "$ANDROID_LICENSES" + fi + accept_license_of android-sdk-license 8933bad161af4178b1185d1a37fbf41ea5269c55 + accept_license_of android-sdk-license d56f5187479451eabf01fb78af6dfcb131a6481e + accept_license_of android-sdk-license 24333f8a63b6825ea9c5514f83c2829b004d1fee + accept_license_of android-sdk-preview-license 84831b9409646a918e30573bab4c9c91346d8abd + accept_license_of intel-android-extra-license d975f751698a77b662f1254ddbeed3901e976f5a + accept_license_of android-sdk-arm-dbt-license 859f317696f67ef3d7f30a50a5560e7834b43903 +} + +accept_license_of() { + local license=$1 + local content=$2 + local file=$ANDROID_LICENSES/$license + if [ -f "$file" ]; then + if grep -q "^$content$" "$file"; then + echo "$license: $content has been accepted already" + else + echo "Accepting $license: $content ..." + echo -e "$content" >>"$file" + fi + else + echo "Accepting $license: $content ..." + echo -e "$content" >"$file" + fi +} + +check_android_sdk_root "$@" +accept_all_android_licenses From af360d553cecf7a1d9dce10ebf2aafceb905843f Mon Sep 17 00:00:00 2001 From: Oleksandr Bezpalchuk Date: Fri, 10 May 2024 15:41:53 +0300 Subject: [PATCH 4/6] Adjusted the ci script --- .github/workflows/release-image.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release-image.yml b/.github/workflows/release-image.yml index 57436f1..cb4c917 100644 --- a/.github/workflows/release-image.yml +++ b/.github/workflows/release-image.yml @@ -75,7 +75,7 @@ jobs: packages: write strategy: matrix: - version: [ '30', '31', '32', '33' ] + version: [ '30', '31', '32', '33', '33-jdk17' ] variant: [ '', '-emulator', '-ndk', '-stf-client' ] needs: [checks-hadolint, checks-shfmt, checks-shellcheck, checks-update] steps: From d66a8aa0c9cef3b8fa81a580f483e69a81675ad4 Mon Sep 17 00:00:00 2001 From: Oleksandr Bezpalchuk Date: Fri, 10 May 2024 15:42:20 +0300 Subject: [PATCH 5/6] Adjusted the script for generating files --- update.sh | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/update.sh b/update.sh index 5d86068..622bc27 100755 --- a/update.sh +++ b/update.sh @@ -1,7 +1,7 @@ #!/usr/bin/env bash set -e -variants=('30' '31' '32' '33') +variants=('30' '31' '32' '33' '33-jdk17') ## Disabled creating extra node variants, rather just having a default for each SDK #node_variants=('14' '18') @@ -10,6 +10,7 @@ declare -A default_node_variants=( ['31']='14' ['32']='18' ['33']='18' + ['33-jdk17']='18' ) jdk_variants=('11') @@ -20,6 +21,7 @@ declare -A build_tools=( ['31']='31.0.0' ['32']='32.0.0' ['33']='33.0.0' + ['33-jdk17']='33.0.0' ) declare -A extra_packages=( @@ -27,6 +29,7 @@ declare -A extra_packages=( ['31']='"build-tools;31.0.0"' ['32']='"build-tools;32.0.0"' ['33']='"build-tools;33.0.0 build-tools;33.0.1 build-tools;33.0.2"' + ['33-jdk17']='"build-tools;33.0.0 build-tools;33.0.1 build-tools;33.0.2"' ) for variant in "${variants[@]}"; do From bb1ac7505dd6af281dcc9e72941bdc4681f57224 Mon Sep 17 00:00:00 2001 From: Oleksandr Bezpalchuk Date: Fri, 10 May 2024 15:43:00 +0300 Subject: [PATCH 6/6] Updated readme with missing variants --- README.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/README.md b/README.md index da60844..f22eced 100644 --- a/README.md +++ b/README.md @@ -4,6 +4,18 @@ An image that lets us build android apps with docker using gitlab-ci ## Tags available +* `33-jdk17` +* `33-jdk17-emulator` +* `33-jdk17-ndk` +* `33-jdk17-stf-client` +* `33` +* `33-emulator` +* `33-ndk` +* `33-stf-client` +* `32` +* `32-emulator` +* `32-ndk` +* `32-stf-client` * `31` * `31-emulator` * `31-ndk`