mastodon-mastodon-android
SUCCESS
10m 34s
History Source
SummaryIterations1Transcript5Dockerfile
01Iteration 1
WRITEWriteFile· step #1
0s
Dockerfile1508 bytes written
text43 lines · 1508 chars
FROM eclipse-temurin:21-jdk-jammy

LABEL maintainer="BuildAgent"

# Install essential tools
RUN apt-get update && apt-get install -y --no-install-recommends \
    curl ca-certificates zip unzip git && \
    rm -rf /var/lib/apt/lists/*

# Android SDK setup
ENV ANDROID_SDK_ROOT=/opt/android-sdk
ENV ANDROID_HOME=$ANDROID_SDK_ROOT
ENV PATH=$PATH:$ANDROID_SDK_ROOT/cmdline-tools/tools/bin:$ANDROID_SDK_ROOT/platform-tools

RUN mkdir -p "$ANDROID_SDK_ROOT" && \
    mkdir -p "$ANDROID_SDK_ROOT/cmdline-tools" && \
    cd /tmp && \
    echo "Downloading Android commandline tools..." && \
    curl -fsSL https://dl.google.com/android/repository/commandlinetools-linux-9477386_latest.zip -o commandlinetools.zip && \
    unzip -q commandlinetools.zip -d /tmp/cmdline-tools && \
    mkdir -p "$ANDROID_SDK_ROOT/cmdline-tools" && \
    mv /tmp/cmdline-tools/cmdline-tools "$ANDROID_SDK_ROOT/cmdline-tools/tools" && \
    rm commandlinetools.zip && \
    yes | "$ANDROID_SDK_ROOT/cmdline-tools/tools/bin/sdkmanager" --sdk_root="$ANDROID_SDK_ROOT" \
        "platform-tools" \
        "platforms;android-33" \
        "build-tools;33.0.0" \
        "extras;android;m2repository" \
        "extras;google;m2repository" && \
    rm -rf /tmp/cmdline-tools

# Prepare project
WORKDIR /workspace
COPY . /workspace
RUN chmod +x gradlew
# Ensure Gradle wrapper can download dependencies
RUN ./gradlew --version

# Build a debug APK by default (signing not required for debug builds)
RUN ./gradlew assembleDebug

CMD ["bash"]
WRITEWriteFile· step #2
0s
.dockerignore76 bytes written
dockerignore11 lines · 76 chars
git
node_modules
.gradle
build
*.iml
*.log
**/*.tmp
.DS_Store
.idea/
*.lock
VERIFYVerifyBuild· step #3
3m 53s
VerifyBuildbuild_failed
Build error
Summary of Docker build error

- Failing command/step
  - [8/8] RUN ./gradlew assembleDebug

- Exact error message and exit code
  - BUILD FAILED in 50s
  - 51.37 > Failed to notify project evaluation listener.
  - 51.37 > The file '/workspace/local.properties' could not be found
  - Docker exit: process "/bin/sh -c ./gradlew assembleDebug" did not complete successfully: exit code: 1

- Missing packages or files mentioned
  - Missing file: /workspace/local.properties

- Version information / potential mismatches
  - Gradle: 8.5 (Gradle 8.5)
  - JVM: 21.0.10 (Eclipse Adoptium 21.0.10+7-LTS) – Java 21 support is noted in Gradle 8.5
  - Kotlin: 1.9.20
  - Context: Gradle configuration failed while building project ':mastodon' during assembleDebug

- Additional context
  - The failure occurs during Gradle project configuration, specifically complaining about a missing local.properties file, which Gradle uses to locate the Android SDK (sdk.dir).

Suggested next steps
- Ensure a valid local.properties exists in /workspace (or configure the build to set ANDROID_SDK_ROOT/ANDROID_HOME appropriately). Typical entry: sdk.dir=/path/to/android-sdk
- If using Android SDK installed earlier in the Dockerfile, verify the path matches local.properties or set environment variables so Gradle does not require local.properties.
WRITEWriteFile· step #4
0s
Dockerfile1632 bytes written
text47 lines · 1632 chars
FROM eclipse-temurin:21-jdk-jammy

LABEL maintainer="BuildAgent"

# Install essential tools
RUN apt-get update && apt-get install -y --no-install-recommends \
    curl ca-certificates zip unzip git && \
    rm -rf /var/lib/apt/lists/*

# Android SDK setup
ENV ANDROID_SDK_ROOT=/opt/android-sdk
ENV ANDROID_HOME=$ANDROID_SDK_ROOT
ENV PATH=$PATH:$ANDROID_SDK_ROOT/cmdline-tools/tools/bin:$ANDROID_SDK_ROOT/platform-tools

RUN mkdir -p "$ANDROID_SDK_ROOT" && \
    mkdir -p "$ANDROID_SDK_ROOT/cmdline-tools" && \
    cd /tmp && \
    echo "Downloading Android commandline tools..." && \
    curl -fsSL https://dl.google.com/android/repository/commandlinetools-linux-9477386_latest.zip -o commandlinetools.zip && \
    unzip -q commandlinetools.zip -d /tmp/cmdline-tools && \
    mkdir -p "$ANDROID_SDK_ROOT/cmdline-tools" && \
    mv /tmp/cmdline-tools/cmdline-tools "$ANDROID_SDK_ROOT/cmdline-tools/tools" && \
    rm commandlinetools.zip && \
    yes | "$ANDROID_SDK_ROOT/cmdline-tools/tools/bin/sdkmanager" --sdk_root="$ANDROID_SDK_ROOT" \
        "platform-tools" \
        "platforms;android-33" \
        "build-tools;33.0.0" \
        "extras;android;m2repository" \
        "extras;google;m2repository" && \
    rm -rf /tmp/cmdline-tools

# Prepare project
WORKDIR /workspace
COPY . /workspace
RUN chmod +x gradlew

# Ensure Gradle wrapper can download dependencies
RUN ./gradlew --version

# Create local.properties to point Gradle to Android SDK
RUN bash -lc "echo sdk.dir=$ANDROID_SDK_ROOT > local.properties"

# Build a debug APK by default (signing not required for debug builds)
RUN ./gradlew assembleDebug

CMD ["bash"]
VERIFYVerifyBuild· step #5
4m 41s
VerifyBuildaccepted
Concerns: Building the Android APK in the image will significantly increase build time and image size due to the Android SDK and Gradle dependencies. This is more than a typical Java native_library build and may not be ideal for lightweight CI jobs.
Smoke [PASS]: ls -la /workspace
Smoke [PASS]: test -x /opt/android-sdk/cmdline-tools/tools/bin/sdkmanager && echo sdkmanager-present
Smoke [PASS]: find /workspace -name '*.apk' -print -quit