# syntax=docker/dockerfile:1
# SDK manager runs with JDK 17; only the legacy Android build runs with JDK 8.
FROM eclipse-temurin:17-jdk-jammy@sha256:c0d1549d1e0f5fa5b83622ec0033b00456107e0b1d0cfcce4c1d831532ce621e AS android-sdk
RUN apt-get update \
    && apt-get install -y --no-install-recommends python3 ca-certificates unzip \
    && rm -rf /var/lib/apt/lists/*
COPY install-toolchain.py /opt/install-toolchain.py
RUN ZHCT_DOCKER_BUILD=1 python3 /opt/install-toolchain.py
ENV ANDROID_HOME=/opt/android-sdk ANDROID_SDK_ROOT=/opt/android-sdk
# The approved prepare action accepts the Android SDK license inside this image.
# This pipeline runs under /bin/sh: sdkmanager, not yes, determines its exit code.
RUN yes | /opt/android-sdk/cmdline-tools/12.0/bin/sdkmanager --sdk_root=/opt/android-sdk --licenses
RUN /opt/android-sdk/cmdline-tools/12.0/bin/sdkmanager --sdk_root=/opt/android-sdk \
    "platforms;android-30" "build-tools;30.0.0" \
    && test -s /opt/android-sdk/platforms/android-30/android.jar \
    && test -x /opt/android-sdk/build-tools/30.0.0/aapt \
    && rm -rf /opt/android-sdk/.temp /root/.android/cache

FROM eclipse-temurin:8-jdk-jammy@sha256:3933156ae7513e7b6471385d9fc317c404df53412867c31f81daada131a38a88
RUN apt-get update \
    && apt-get install -y --no-install-recommends python3 git ca-certificates unzip \
        lib32stdc++6 lib32z1 \
    && rm -rf /var/lib/apt/lists/* \
    && mkdir -p /cache/gradle \
    && chmod 1777 /cache/gradle
COPY --from=android-sdk /opt/android-sdk /opt/android-sdk
COPY --from=android-sdk /opt/gradle /opt/gradle
COPY --from=android-sdk /opt/toolchain-receipt.json /opt/toolchain-receipt.json
# sdkmanager needs JDK 17 and is deliberately not on this JDK 8 build PATH.
ENV ANDROID_HOME=/opt/android-sdk ANDROID_SDK_ROOT=/opt/android-sdk \
    GRADLE_USER_HOME=/cache/gradle \
    PATH=/opt/gradle/gradle-5.1.1/bin:/opt/java/openjdk/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin \
    PYTHONDONTWRITEBYTECODE=1 GIT_OPTIONAL_LOCKS=0
WORKDIR /tmp
CMD ["gradle", "--version"]
