#!/usr/bin/env bash # The relative paths in this file only become valid at runtime. # shellcheck disable=SC1091 # shellcheck disable=SC2086 # we want word splitting set -e set -o xtrace export DEBIAN_FRONTEND=noninteractive # Ephemeral packages (installed for this script and removed again at the end) STABLE_EPHEMERAL=" \ ccache \ unzip \ dpkg-dev \ build-essential:native \ config-package-dev \ debhelper-compat \ cmake \ ninja-build \ " apt-get install -y --no-remove --no-install-recommends \ $STABLE_EPHEMERAL \ iproute2 ############### Building ... . .gitlab-ci/container/container_pre_build.sh ############### Downloading NDK for native builds for the guest ... # Fetch the NDK and extract just the toolchain we want. ndk=$ANDROID_NDK curl -L --retry 4 -f --retry-all-errors --retry-delay 60 \ -o $ndk.zip https://dl.google.com/android/repository/$ndk-linux.zip unzip -d / $ndk.zip rm $ndk.zip ############### Build dEQP runner export ANDROID_NDK_HOME=/$ndk . .gitlab-ci/container/build-rust.sh . .gitlab-ci/container/build-deqp-runner.sh rm -rf /root/.cargo rm -rf /root/.rustup ############### Build dEQP GL DEQP_TARGET="android" \ EXTRA_CMAKE_ARGS="-DDEQP_TARGET_TOOLCHAIN=ndk-modern -DANDROID_NDK_PATH=/$ndk -DANDROID_ABI=x86_64 -DDE_ANDROID_API=28" \ . .gitlab-ci/container/build-deqp.sh ############### Downloading Cuttlefish resources ... CUTTLEFISH_VERSION=9082637 # Chosen from https://ci.android.com/builds/branches/aosp-master/grid? mkdir /cuttlefish pushd /cuttlefish curl -L --retry 4 -f --retry-all-errors --retry-delay 60 \ -o aosp_cf_x86_64_phone-img-$CUTTLEFISH_VERSION.zip https://ci.android.com/builds/submitted/$CUTTLEFISH_VERSION/aosp_cf_x86_64_phone-userdebug/latest/raw/aosp_cf_x86_64_phone-img-$CUTTLEFISH_VERSION.zip unzip aosp_cf_x86_64_phone-img-$CUTTLEFISH_VERSION.zip rm aosp_cf_x86_64_phone-img-$CUTTLEFISH_VERSION.zip ls -lhS ./* curl -L --retry 4 -f --retry-all-errors --retry-delay 60 \ https://ci.android.com/builds/submitted/$CUTTLEFISH_VERSION/aosp_cf_x86_64_phone-userdebug/latest/raw/cvd-host_package.tar.gz | tar -xzvf- popd ############### Building and installing Debian package ... git clone --depth 1 https://github.com/google/android-cuttlefish.git pushd android-cuttlefish pushd base dpkg-buildpackage -uc -us popd apt-get install -y ./cuttlefish-base_*.deb popd rm -rf android-cuttlefish addgroup --system kvm usermod -a -G kvm,cvdnetwork root ############### Uninstall the build software rm -rf "/${ndk:?}" ccache --show-stats apt-get purge -y \ $STABLE_EPHEMERAL apt-get autoremove -y --purge