Skip to content

Commit

Permalink
Attempt to use newer Android SDK
Browse files Browse the repository at this point in the history
This is copied from the rust-lang/libc CI scripts.
  • Loading branch information
Amanieu committed Jun 19, 2023
1 parent 30c2aba commit 86b5cb1
Show file tree
Hide file tree
Showing 7 changed files with 46 additions and 39 deletions.
25 changes: 5 additions & 20 deletions ci/android-ndk.sh
Original file line number Diff line number Diff line change
@@ -1,23 +1,8 @@
set -ex

ANDROID_ARCH=$1
ANDROID_SDK_VERSION=4333796
NDK=android-ndk-r25b
wget --tries=20 -q https://dl.google.com/android/repository/${NDK}-linux.zip
unzip -q ${NDK}-linux.zip
mv ${NDK} "/android-toolchain"

mkdir /tmp/android
cd /tmp/android

curl -o android-sdk.zip \
"https://dl.google.com/android/repository/sdk-tools-linux-${ANDROID_SDK_VERSION}.zip"
unzip -q android-sdk.zip

yes | ./tools/bin/sdkmanager --licenses > /dev/null
./tools/bin/sdkmanager ndk-bundle > /dev/null

./ndk-bundle/build/tools/make_standalone_toolchain.py \
--arch $ANDROID_ARCH \
--stl=libc++ \
--api 21 \
--install-dir /android-toolchain

cd /tmp
rm -rf android
rm -rf ./${NDK}-linux.zip
25 changes: 16 additions & 9 deletions ci/android-sdk.sh
Original file line number Diff line number Diff line change
Expand Up @@ -9,15 +9,15 @@ set -ex
# located in https://github.com/appunite/docker by just wrapping it in a script
# which apparently magically accepts the licenses.

SDK=4333796
mkdir sdk
curl --retry 20 https://dl.google.com/android/repository/sdk-tools-linux-${SDK}.zip -O
unzip -q -d sdk sdk-tools-linux-${SDK}.zip
SDK=6609375
mkdir -p sdk/cmdline-tools
wget -q --tries=20 https://dl.google.com/android/repository/commandlinetools-linux-${SDK}_latest.zip
unzip -q -d sdk/cmdline-tools commandlinetools-linux-${SDK}_latest.zip

case "$1" in
arm | armv7)
api=24
image="system-images;android-${api};google_apis;armeabi-v7a"
image="system-images;android-${api};default;armeabi-v7a"
;;
aarch64)
api=24
Expand Down Expand Up @@ -51,15 +51,22 @@ echo '#Fri Nov 03 10:11:27 CET 2017 count=0' >> /root/.android/repositories.cfg
#
# | grep -v = || true removes the progress bar output from the sdkmanager
# which produces an insane amount of output.
yes | ./sdk/tools/bin/sdkmanager --licenses --no_https | grep -v = || true
yes | ./sdk/tools/bin/sdkmanager --no_https \
"emulator" \
yes | ./sdk/cmdline-tools/tools/bin/sdkmanager --licenses --no_https | grep -v = || true
yes | ./sdk/cmdline-tools/tools/bin/sdkmanager --no_https \
"platform-tools" \
"platforms;android-${api}" \
"${image}" | grep -v = || true

# The newer emulator versions (31.3.12 or higher) fail to a valid AVD and the test gets stuck.
# Until we figure out why, we use the older version (31.3.11).
wget -q --tries=20 https://redirector.gvt1.com/edgedl/android/repository/emulator-linux_x64-9058569.zip
unzip -q -d sdk emulator-linux_x64-9058569.zip

cp /android/android-emulator-package.xml /android/sdk/emulator/package.xml

echo "no" |
./sdk/tools/bin/avdmanager create avd \
./sdk/cmdline-tools/tools/bin/avdmanager create avd \
--name "${1}" \
--package "${image}" | grep -v = || true

rm -rf commandlinetools-linux-${SDK}_latest.zip emulator-linux_x64-9058569.zip
7 changes: 5 additions & 2 deletions ci/docker/aarch64-linux-android/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,15 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
openjdk-8-jre \
python \
gcc \
libc6-dev
libc6-dev \
wget \
python3 \
python3-distutils

COPY android-ndk.sh /
RUN /android-ndk.sh arm64
ENV PATH=$PATH:/android-toolchain/bin

# TODO: run tests in an emulator eventually
ENV CARGO_TARGET_AARCH64_LINUX_ANDROID_LINKER=aarch64-linux-android-gcc \
ENV CARGO_TARGET_AARCH64_LINUX_ANDROID_LINKER=aarch64-linux-android21-clang \
CARGO_TARGET_AARCH64_LINUX_ANDROID_RUNNER=echo
7 changes: 5 additions & 2 deletions ci/docker/arm-linux-androideabi/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,15 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
openjdk-8-jre \
python \
gcc \
libc6-dev
libc6-dev \
wget \
python3 \
python3-distutils

COPY android-ndk.sh /
RUN /android-ndk.sh arm
ENV PATH=$PATH:/android-toolchain/bin

# TODO: run tests in an emulator eventually
ENV CARGO_TARGET_ARM_LINUX_ANDROIDEABI_LINKER=arm-linux-androideabi-gcc \
ENV CARGO_TARGET_ARM_LINUX_ANDROIDEABI_LINKER=armv7a-linux-androideabi19-clang \
CARGO_TARGET_ARM_LINUX_ANDROIDEABI_RUNNER=echo
7 changes: 5 additions & 2 deletions ci/docker/armv7-linux-androideabi/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,15 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
openjdk-8-jre \
python \
gcc \
libc6-dev
libc6-dev \
wget \
python3 \
python3-distutils

COPY android-ndk.sh /
RUN /android-ndk.sh arm
ENV PATH=$PATH:/android-toolchain/bin

# TODO: run tests in an emulator eventually
ENV CARGO_TARGET_ARMV7_LINUX_ANDROIDEABI_LINKER=arm-linux-androideabi-gcc \
ENV CARGO_TARGET_ARMV7_LINUX_ANDROIDEABI_LINKER=armv7a-linux-androideabi19-clang \
CARGO_TARGET_ARMV7_LINUX_ANDROIDEABI_RUNNER=echo
7 changes: 5 additions & 2 deletions ci/docker/i686-linux-android/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,13 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
openjdk-8-jre \
python \
gcc \
libc6-dev
libc6-dev \
wget \
python3 \
python3-distutils

COPY android-ndk.sh /
RUN /android-ndk.sh x86
RUN /android-ndk.sh i686
ENV PATH=$PATH:/android-toolchain/bin

# TODO: run tests in an emulator eventually
Expand Down
7 changes: 5 additions & 2 deletions ci/docker/x86_64-linux-android/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,15 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
openjdk-8-jre \
python \
gcc \
libc6-dev
libc6-dev \
wget \
python3 \
python3-distutils

COPY android-ndk.sh /
RUN /android-ndk.sh x86_64
ENV PATH=$PATH:/android-toolchain/bin

# TODO: run tests in an emulator eventually
ENV CARGO_TARGET_X86_64_LINUX_ANDROID_LINKER=x86_64-linux-android-gcc \
ENV CARGO_TARGET_X86_64_LINUX_ANDROID_LINKER=x86_64-linux-android21-clang \
CARGO_TARGET_X86_64_LINUX_ANDROID_RUNNER=echo

0 comments on commit 86b5cb1

Please sign in to comment.