mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-03-13 13:10:34 +01:00
ci/container: Generalize debian/x86_64_test-android container
Signed-off-by: Valentine Burley <valentine.burley@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39993>
This commit is contained in:
parent
f50a358569
commit
9cd5239c01
2 changed files with 158 additions and 154 deletions
157
.gitlab-ci/container/debian/test-android.sh
Executable file
157
.gitlab-ci/container/debian/test-android.sh
Executable file
|
|
@ -0,0 +1,157 @@
|
|||
#!/usr/bin/env bash
|
||||
# The relative paths in this file only become valid at runtime.
|
||||
# shellcheck disable=SC1091
|
||||
#
|
||||
# When changing this file, you need to bump the following
|
||||
# .gitlab-ci/image-tags.yml tags:
|
||||
# DEBIAN_TEST_ANDROID_TAG
|
||||
|
||||
set -e
|
||||
|
||||
. .gitlab-ci/setup-test-env.sh
|
||||
|
||||
set -o xtrace
|
||||
|
||||
section_start debian_setup "Base Debian system setup"
|
||||
|
||||
export DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
# Ephemeral packages (installed for this script and removed again at the end)
|
||||
EPHEMERAL=(
|
||||
build-essential:native
|
||||
ccache
|
||||
cmake
|
||||
config-package-dev
|
||||
debhelper-compat
|
||||
dpkg-dev
|
||||
ninja-build
|
||||
unzip
|
||||
)
|
||||
|
||||
DEPS=(
|
||||
aapt
|
||||
cuttlefish-base
|
||||
cuttlefish-user
|
||||
iproute2
|
||||
)
|
||||
apt-get install -y --no-remove --no-install-recommends \
|
||||
"${DEPS[@]}" "${EPHEMERAL[@]}"
|
||||
|
||||
############### Building ...
|
||||
|
||||
. .gitlab-ci/container/container_pre_build.sh
|
||||
|
||||
section_end debian_setup
|
||||
|
||||
############### Downloading Android tools
|
||||
|
||||
section_start android-tools "Downloading Android tools"
|
||||
|
||||
mkdir /android-tools
|
||||
pushd /android-tools
|
||||
|
||||
curl -L --retry 4 -f --retry-all-errors --retry-delay 60 \
|
||||
-o eglinfo "https://${S3_HOST}/${S3_ANDROID_BUCKET}/mesa/mesa/${DATA_STORAGE_PATH}/eglinfo-android-x86_64"
|
||||
chmod +x eglinfo
|
||||
|
||||
curl -L --retry 4 -f --retry-all-errors --retry-delay 60 \
|
||||
-o vulkaninfo "https://${S3_HOST}/${S3_ANDROID_BUCKET}/mesa/mesa/${DATA_STORAGE_PATH}/vulkaninfo-android-x86_64"
|
||||
chmod +x vulkaninfo
|
||||
|
||||
popd
|
||||
|
||||
section_end android-tools
|
||||
|
||||
############### Downloading NDK for native builds for the guest ...
|
||||
|
||||
section_start android-ndk "Downloading Android NDK"
|
||||
|
||||
# Fetch the NDK and extract just the toolchain we want.
|
||||
ndk="android-ndk-${ANDROID_NDK_VERSION}"
|
||||
curl -L --retry 4 -f --retry-all-errors --retry-delay 60 \
|
||||
-o "$ndk.zip" "https://dl.google.com/android/repository/$ndk-linux.zip"
|
||||
unzip -q -d / "$ndk.zip"
|
||||
rm "$ndk.zip"
|
||||
|
||||
section_end android-ndk
|
||||
|
||||
############### Build ANGLE
|
||||
|
||||
ANGLE_TARGET=android \
|
||||
DEBIAN_ARCH=amd64 \
|
||||
. .gitlab-ci/container/build-angle.sh
|
||||
|
||||
############### Build dEQP runner
|
||||
|
||||
export ANDROID_NDK_HOME=/$ndk
|
||||
export RUST_TARGET=x86_64-linux-android
|
||||
. .gitlab-ci/container/build-rust.sh test
|
||||
. .gitlab-ci/container/build-deqp-runner.sh
|
||||
|
||||
# Properly uninstall rustup including cargo and init scripts on shells
|
||||
rustup self uninstall -y
|
||||
|
||||
############### Build dEQP
|
||||
|
||||
DEQP_API=tools \
|
||||
DEQP_TARGET="android" \
|
||||
EXTRA_CMAKE_ARGS="-DDEQP_ANDROID_EXE=ON -DDEQP_TARGET_TOOLCHAIN=ndk-modern -DANDROID_NDK_PATH=/$ndk -DANDROID_ABI=x86_64 -DDE_ANDROID_API=$ANDROID_SDK_VERSION" \
|
||||
. .gitlab-ci/container/build-deqp.sh
|
||||
|
||||
DEQP_API=GLES \
|
||||
DEQP_TARGET="android" \
|
||||
EXTRA_CMAKE_ARGS="-DDEQP_ANDROID_EXE=ON -DDEQP_ANDROID_EXE_LOGCAT=ON -DDEQP_TARGET_TOOLCHAIN=ndk-modern -DANDROID_NDK_PATH=/$ndk -DANDROID_ABI=x86_64 -DDE_ANDROID_API=$ANDROID_SDK_VERSION" \
|
||||
. .gitlab-ci/container/build-deqp.sh
|
||||
|
||||
DEQP_API=VK \
|
||||
DEQP_TARGET="android" \
|
||||
EXTRA_CMAKE_ARGS="-DDEQP_ANDROID_EXE=ON -DDEQP_ANDROID_EXE_LOGCAT=ON -DDEQP_TARGET_TOOLCHAIN=ndk-modern -DANDROID_NDK_PATH=/$ndk -DANDROID_ABI=x86_64 -DDE_ANDROID_API=$ANDROID_SDK_VERSION" \
|
||||
. .gitlab-ci/container/build-deqp.sh
|
||||
|
||||
rm -rf /VK-GL-CTS
|
||||
|
||||
############### Downloading Cuttlefish resources ...
|
||||
|
||||
section_start cuttlefish "Downloading and setting up Cuttlefish"
|
||||
|
||||
mkdir /cuttlefish
|
||||
pushd /cuttlefish
|
||||
|
||||
curl -L --retry 4 -f --retry-all-errors --retry-delay 60 \
|
||||
-O "https://${S3_HOST}/${S3_ANDROID_BUCKET}/${CUTTLEFISH_PROJECT_PATH}/aosp-${CUTTLEFISH_BUILD_VERSION_TAGS}.${CUTTLEFISH_BUILD_NUMBER}/aosp_cf_x86_64_only_phone-img-${CUTTLEFISH_BUILD_NUMBER}.tar.zst"
|
||||
|
||||
tar --zstd -xvf aosp_cf_x86_64_only_phone-img-"$CUTTLEFISH_BUILD_NUMBER".tar.zst
|
||||
rm aosp_cf_x86_64_only_phone-img-"$CUTTLEFISH_BUILD_NUMBER".tar.zst
|
||||
ls -lhS ./*
|
||||
|
||||
curl -L --retry 4 -f --retry-all-errors --retry-delay 60 \
|
||||
-O "https://${S3_HOST}/${S3_ANDROID_BUCKET}/${CUTTLEFISH_PROJECT_PATH}/aosp-${CUTTLEFISH_BUILD_VERSION_TAGS}.${CUTTLEFISH_BUILD_NUMBER}/cvd-host_package-x86_64.tar.zst"
|
||||
tar --zst -xvf cvd-host_package-x86_64.tar.zst
|
||||
rm cvd-host_package-x86_64.tar.zst
|
||||
|
||||
popd
|
||||
|
||||
addgroup --system kvm
|
||||
usermod -a -G kvm,cvdnetwork root
|
||||
|
||||
section_end cuttlefish
|
||||
|
||||
############### Downloading Android CTS
|
||||
|
||||
. .gitlab-ci/container/build-android-cts.sh
|
||||
|
||||
############### Uninstall the build software
|
||||
|
||||
section_switch debian_cleanup "Cleaning up base Debian system"
|
||||
|
||||
rm -rf "/${ndk:?}"
|
||||
|
||||
apt-get purge -y "${EPHEMERAL[@]}"
|
||||
|
||||
. .gitlab-ci/container/container_post_build.sh
|
||||
|
||||
section_end debian_cleanup
|
||||
|
||||
############### Remove unused packages
|
||||
|
||||
. .gitlab-ci/container/strip-rootfs.sh
|
||||
|
|
@ -1,157 +1,4 @@
|
|||
#!/usr/bin/env bash
|
||||
# The relative paths in this file only become valid at runtime.
|
||||
# shellcheck disable=SC1091
|
||||
#
|
||||
# When changing this file, you need to bump the following
|
||||
# .gitlab-ci/image-tags.yml tags:
|
||||
# DEBIAN_TEST_ANDROID_TAG
|
||||
|
||||
set -e
|
||||
|
||||
. .gitlab-ci/setup-test-env.sh
|
||||
|
||||
set -o xtrace
|
||||
|
||||
section_start debian_setup "Base Debian system setup"
|
||||
|
||||
export DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
# Ephemeral packages (installed for this script and removed again at the end)
|
||||
EPHEMERAL=(
|
||||
build-essential:native
|
||||
ccache
|
||||
cmake
|
||||
config-package-dev
|
||||
debhelper-compat
|
||||
dpkg-dev
|
||||
ninja-build
|
||||
unzip
|
||||
)
|
||||
|
||||
DEPS=(
|
||||
aapt
|
||||
cuttlefish-base
|
||||
cuttlefish-user
|
||||
iproute2
|
||||
)
|
||||
apt-get install -y --no-remove --no-install-recommends \
|
||||
"${DEPS[@]}" "${EPHEMERAL[@]}"
|
||||
|
||||
############### Building ...
|
||||
|
||||
. .gitlab-ci/container/container_pre_build.sh
|
||||
|
||||
section_end debian_setup
|
||||
|
||||
############### Downloading Android tools
|
||||
|
||||
section_start android-tools "Downloading Android tools"
|
||||
|
||||
mkdir /android-tools
|
||||
pushd /android-tools
|
||||
|
||||
curl -L --retry 4 -f --retry-all-errors --retry-delay 60 \
|
||||
-o eglinfo "https://${S3_HOST}/${S3_ANDROID_BUCKET}/mesa/mesa/${DATA_STORAGE_PATH}/eglinfo-android-x86_64"
|
||||
chmod +x eglinfo
|
||||
|
||||
curl -L --retry 4 -f --retry-all-errors --retry-delay 60 \
|
||||
-o vulkaninfo "https://${S3_HOST}/${S3_ANDROID_BUCKET}/mesa/mesa/${DATA_STORAGE_PATH}/vulkaninfo-android-x86_64"
|
||||
chmod +x vulkaninfo
|
||||
|
||||
popd
|
||||
|
||||
section_end android-tools
|
||||
|
||||
############### Downloading NDK for native builds for the guest ...
|
||||
|
||||
section_start android-ndk "Downloading Android NDK"
|
||||
|
||||
# Fetch the NDK and extract just the toolchain we want.
|
||||
ndk="android-ndk-${ANDROID_NDK_VERSION}"
|
||||
curl -L --retry 4 -f --retry-all-errors --retry-delay 60 \
|
||||
-o "$ndk.zip" "https://dl.google.com/android/repository/$ndk-linux.zip"
|
||||
unzip -q -d / "$ndk.zip"
|
||||
rm "$ndk.zip"
|
||||
|
||||
section_end android-ndk
|
||||
|
||||
############### Build ANGLE
|
||||
|
||||
ANGLE_TARGET=android \
|
||||
DEBIAN_ARCH=amd64 \
|
||||
. .gitlab-ci/container/build-angle.sh
|
||||
|
||||
############### Build dEQP runner
|
||||
|
||||
export ANDROID_NDK_HOME=/$ndk
|
||||
export RUST_TARGET=x86_64-linux-android
|
||||
. .gitlab-ci/container/build-rust.sh test
|
||||
. .gitlab-ci/container/build-deqp-runner.sh
|
||||
|
||||
# Properly uninstall rustup including cargo and init scripts on shells
|
||||
rustup self uninstall -y
|
||||
|
||||
############### Build dEQP
|
||||
|
||||
DEQP_API=tools \
|
||||
DEQP_TARGET="android" \
|
||||
EXTRA_CMAKE_ARGS="-DDEQP_ANDROID_EXE=ON -DDEQP_TARGET_TOOLCHAIN=ndk-modern -DANDROID_NDK_PATH=/$ndk -DANDROID_ABI=x86_64 -DDE_ANDROID_API=$ANDROID_SDK_VERSION" \
|
||||
. .gitlab-ci/container/build-deqp.sh
|
||||
|
||||
DEQP_API=GLES \
|
||||
DEQP_TARGET="android" \
|
||||
EXTRA_CMAKE_ARGS="-DDEQP_ANDROID_EXE=ON -DDEQP_ANDROID_EXE_LOGCAT=ON -DDEQP_TARGET_TOOLCHAIN=ndk-modern -DANDROID_NDK_PATH=/$ndk -DANDROID_ABI=x86_64 -DDE_ANDROID_API=$ANDROID_SDK_VERSION" \
|
||||
. .gitlab-ci/container/build-deqp.sh
|
||||
|
||||
DEQP_API=VK \
|
||||
DEQP_TARGET="android" \
|
||||
EXTRA_CMAKE_ARGS="-DDEQP_ANDROID_EXE=ON -DDEQP_ANDROID_EXE_LOGCAT=ON -DDEQP_TARGET_TOOLCHAIN=ndk-modern -DANDROID_NDK_PATH=/$ndk -DANDROID_ABI=x86_64 -DDE_ANDROID_API=$ANDROID_SDK_VERSION" \
|
||||
. .gitlab-ci/container/build-deqp.sh
|
||||
|
||||
rm -rf /VK-GL-CTS
|
||||
|
||||
############### Downloading Cuttlefish resources ...
|
||||
|
||||
section_start cuttlefish "Downloading and setting up Cuttlefish"
|
||||
|
||||
mkdir /cuttlefish
|
||||
pushd /cuttlefish
|
||||
|
||||
curl -L --retry 4 -f --retry-all-errors --retry-delay 60 \
|
||||
-O "https://${S3_HOST}/${S3_ANDROID_BUCKET}/${CUTTLEFISH_PROJECT_PATH}/aosp-${CUTTLEFISH_BUILD_VERSION_TAGS}.${CUTTLEFISH_BUILD_NUMBER}/aosp_cf_x86_64_only_phone-img-${CUTTLEFISH_BUILD_NUMBER}.tar.zst"
|
||||
|
||||
tar --zstd -xvf aosp_cf_x86_64_only_phone-img-"$CUTTLEFISH_BUILD_NUMBER".tar.zst
|
||||
rm aosp_cf_x86_64_only_phone-img-"$CUTTLEFISH_BUILD_NUMBER".tar.zst
|
||||
ls -lhS ./*
|
||||
|
||||
curl -L --retry 4 -f --retry-all-errors --retry-delay 60 \
|
||||
-O "https://${S3_HOST}/${S3_ANDROID_BUCKET}/${CUTTLEFISH_PROJECT_PATH}/aosp-${CUTTLEFISH_BUILD_VERSION_TAGS}.${CUTTLEFISH_BUILD_NUMBER}/cvd-host_package-x86_64.tar.zst"
|
||||
tar --zst -xvf cvd-host_package-x86_64.tar.zst
|
||||
rm cvd-host_package-x86_64.tar.zst
|
||||
|
||||
popd
|
||||
|
||||
addgroup --system kvm
|
||||
usermod -a -G kvm,cvdnetwork root
|
||||
|
||||
section_end cuttlefish
|
||||
|
||||
############### Downloading Android CTS
|
||||
|
||||
. .gitlab-ci/container/build-android-cts.sh
|
||||
|
||||
############### Uninstall the build software
|
||||
|
||||
section_switch debian_cleanup "Cleaning up base Debian system"
|
||||
|
||||
rm -rf "/${ndk:?}"
|
||||
|
||||
apt-get purge -y "${EPHEMERAL[@]}"
|
||||
|
||||
. .gitlab-ci/container/container_post_build.sh
|
||||
|
||||
section_end debian_cleanup
|
||||
|
||||
############### Remove unused packages
|
||||
|
||||
. .gitlab-ci/container/strip-rootfs.sh
|
||||
. .gitlab-ci/container/debian/test-android.sh
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue