mirror of https://gitlab.freedesktop.org/mesa/mesa
99 lines
2.6 KiB
Bash
99 lines
2.6 KiB
Bash
#!/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 |