12add0d91Sopenharmony_ciFROM ubuntu:22.04
22add0d91Sopenharmony_ci
32add0d91Sopenharmony_ciRUN dpkg --add-architecture i386
42add0d91Sopenharmony_ciRUN apt-get update
52add0d91Sopenharmony_ciRUN apt-get install -y --no-install-recommends libc6-dev gcc
62add0d91Sopenharmony_ciRUN apt-get install -y --no-install-recommends \
72add0d91Sopenharmony_ci  file \
82add0d91Sopenharmony_ci  wget \
92add0d91Sopenharmony_ci  ca-certificates \
102add0d91Sopenharmony_ci  python3 \
112add0d91Sopenharmony_ci  python3-distutils \
122add0d91Sopenharmony_ci  unzip \
132add0d91Sopenharmony_ci  expect \
142add0d91Sopenharmony_ci  openjdk-8-jre \
152add0d91Sopenharmony_ci  libstdc++6:i386 \
162add0d91Sopenharmony_ci  libpulse0
172add0d91Sopenharmony_ci
182add0d91Sopenharmony_ciWORKDIR /android/
192add0d91Sopenharmony_ciCOPY android* /android/
202add0d91Sopenharmony_ci
212add0d91Sopenharmony_ciENV ANDROID_ARCH=i686
222add0d91Sopenharmony_ciENV PATH=$PATH:/android/ndk-$ANDROID_ARCH/bin:/android/sdk/cmdline-tools/tools:/android/sdk/platform-tools
232add0d91Sopenharmony_ci
242add0d91Sopenharmony_ciRUN sh /android/android-install-ndk.sh $ANDROID_ARCH
252add0d91Sopenharmony_ciRUN sh /android/android-install-sdk.sh $ANDROID_ARCH
262add0d91Sopenharmony_ciRUN mv /root/.android /tmp
272add0d91Sopenharmony_ciRUN chmod 777 -R /tmp/.android
282add0d91Sopenharmony_ciRUN chmod 755 /android/sdk/cmdline-tools/tools/* /android/sdk/emulator/qemu/linux-x86_64/*
292add0d91Sopenharmony_ci
302add0d91Sopenharmony_ciENV PATH=$PATH:/rust/bin \
312add0d91Sopenharmony_ci    CARGO_TARGET_I686_LINUX_ANDROID_LINKER=i686-linux-android-gcc \
322add0d91Sopenharmony_ci    CARGO_TARGET_I686_LINUX_ANDROID_RUNNER=/tmp/runtest \
332add0d91Sopenharmony_ci    CC_i686_linux_android=i686-linux-android-gcc \
342add0d91Sopenharmony_ci    HOME=/tmp
352add0d91Sopenharmony_ci
362add0d91Sopenharmony_ciADD runtest-android.rs /tmp/runtest.rs
372add0d91Sopenharmony_ciENTRYPOINT [ \
382add0d91Sopenharmony_ci  "bash", \
392add0d91Sopenharmony_ci  "-c", \
402add0d91Sopenharmony_ci  # set SHELL so android can detect a 64bits system, see
412add0d91Sopenharmony_ci  # http://stackoverflow.com/a/41789144
422add0d91Sopenharmony_ci  "SHELL=/bin/dash /android/sdk/emulator/emulator @i686 -no-window -no-accel & \
432add0d91Sopenharmony_ci   rustc /tmp/runtest.rs -o /tmp/runtest && \
442add0d91Sopenharmony_ci   exec \"$@\"", \
452add0d91Sopenharmony_ci  "--" \
462add0d91Sopenharmony_ci]
47