drm_hwcomposer: CI: Refactor containers
The `ubuntu/x86_64_android` container is the base for running cts/vts
tests, but it is getting very large (~4GB) and takes a long time to build.
To make the base container smaller (~2.6GB), and to make it quicker to
rebuild specific components, carve out two new containers from the base
container:
1) `ubuntu/x86_64_android_tools` for any tools that can be downloaded;
2) `ubuntu/x86_64_android_binaries` for any binaries (excluding
cuttlefish) that need to be built within the aosp repo.
Also, remove the jobs that start with the prefix `use-*`. These jobs pull
containers (e.g. debian/x86_64_cuttlefish) to make files inside the
container (e.g. cuttlefish.tar.xz) available to other jobs in the pipeline
as artifacts. But these `use-*` jobs can take a long time to run
(anywhere from 3 to 20 minutes to use the cuttlefish container). Instead,
use skopeo with umoci to fetch the containers and access their files,
which is much quicker.
Signed-off-by: Deborah Brouwer <deborah.brouwer@collabora.com>
This commit is contained in:
parent
c02ebae650
commit
2e853865c2
9 changed files with 332 additions and 144 deletions
|
|
@ -44,26 +44,39 @@ ubuntu/x86_64_aospless:
|
|||
FDO_DISTRIBUTION_EXEC: 'bash .ci/container/ubuntu/x86_64_aospless.sh'
|
||||
HWC_TAG: $UBUNTU_AOSPLESS_TAG
|
||||
|
||||
ubuntu/x86_64_android:
|
||||
ubuntu/x86_64_android_binaries:
|
||||
extends:
|
||||
- .ubuntu/x86_64_hwc
|
||||
timeout: 2h
|
||||
variables:
|
||||
FDO_DISTRIBUTION_VERSION: "22.04"
|
||||
FDO_DISTRIBUTION_EXEC: 'bash .ci/container/ubuntu/x86_64_android_binaries.sh'
|
||||
HWC_TAG: $UBUNTU_ANDROID_BINARIES_TAG
|
||||
|
||||
ubuntu/x86_64_android_tools:
|
||||
extends:
|
||||
- .ubuntu/x86_64_hwc
|
||||
timeout: 2h
|
||||
variables:
|
||||
ANDROID_VERSION: 16
|
||||
ANDROID_CTS_DEVICE_ARCH: "x86"
|
||||
ANDROID_CTS_MODULES: >-
|
||||
CtsGraphicsTestCases
|
||||
CtsDisplayTestCases
|
||||
FDO_DISTRIBUTION_VERSION: "22.04"
|
||||
FDO_DISTRIBUTION_EXEC: 'bash .ci/container/ubuntu/x86_64_android_tools.sh'
|
||||
HWC_TAG: $UBUNTU_ANDROID_TOOLS_TAG
|
||||
|
||||
ubuntu/x86_64_android:
|
||||
extends:
|
||||
- .ubuntu/x86_64_hwc
|
||||
variables:
|
||||
FDO_DISTRIBUTION_VERSION: "22.04"
|
||||
FDO_DISTRIBUTION_EXEC: 'bash .ci/container/ubuntu/x86_64_android.sh'
|
||||
HWC_TAG: $UBUNTU_ANDROID_TAG
|
||||
after_script:
|
||||
- cp /vts.log.txt "${CI_PROJECT_DIR}/vts.log.txt"
|
||||
artifacts:
|
||||
when: always
|
||||
paths:
|
||||
- "${CI_PROJECT_DIR}/vts.log.txt"
|
||||
expire_in: 1 week
|
||||
needs:
|
||||
- job: debian/x86_64_cuttlefish
|
||||
- job: ubuntu/x86_64_android_binaries
|
||||
- job: ubuntu/x86_64_android_tools
|
||||
|
||||
.set-image:
|
||||
extends:
|
||||
|
|
@ -78,7 +91,7 @@ ubuntu/x86_64_android:
|
|||
HWC_IMAGE: $UBUNTU_AOSPLESS_IMAGE
|
||||
HWC_TAG: $UBUNTU_AOSPLESS_TAG
|
||||
needs:
|
||||
- ubuntu/x86_64_aospless
|
||||
- job: ubuntu/x86_64_aospless
|
||||
|
||||
.use-ubuntu/x86_64_android:
|
||||
extends:
|
||||
|
|
@ -88,21 +101,4 @@ ubuntu/x86_64_android:
|
|||
HWC_IMAGE: $UBUNTU_ANDROID_IMAGE
|
||||
HWC_TAG: $UBUNTU_ANDROID_TAG
|
||||
needs:
|
||||
- ubuntu/x86_64_android
|
||||
|
||||
use-debian/x86_64_cuttlefish:
|
||||
extends:
|
||||
- .fdo.container-build@debian
|
||||
- .set-image
|
||||
variables:
|
||||
HWC_IMAGE: $DEBIAN_CUTTLEFISH_IMAGE
|
||||
HWC_TAG: $DEBIAN_CUTTLEFISH_TAG
|
||||
needs:
|
||||
- debian/x86_64_cuttlefish
|
||||
script:
|
||||
- cp -a "/${CUTTLEFISH_TARBALL}" "${CI_PROJECT_DIR}"
|
||||
artifacts:
|
||||
when: always
|
||||
paths:
|
||||
- "${CI_PROJECT_DIR}/${CUTTLEFISH_TARBALL}"
|
||||
expire_in: 1 week
|
||||
- job: ubuntu/x86_64_android
|
||||
|
|
|
|||
|
|
@ -26,8 +26,21 @@ function my_atexit()
|
|||
exit $EXIT_CODE
|
||||
}
|
||||
|
||||
# Cuttlefish is an artifact built earlier in the pipeline
|
||||
tar xf "${CI_PROJECT_DIR}/${CUTTLEFISH_TARBALL}" -C /
|
||||
fdo_log_section_start_collapsed get_cuttlefish "get_cuttlefish"
|
||||
tar xf "/${CUTTLEFISH_TARBALL}" -C /
|
||||
fdo_log_section_end get_cuttlefish
|
||||
|
||||
fdo_log_section_start_collapsed get_tools "get_tools"
|
||||
tar xf "/${ANDROID_TOOLS_TARBALL}" -C /
|
||||
mv "/${BINARIES_DIR}/apexer" "/${TOOLS_DIR}/build-tools"
|
||||
fdo_log_section_end get_tools
|
||||
|
||||
fdo_log_section_start_collapsed install_packages "install_packages"
|
||||
apt-get update
|
||||
apt-get upgrade -y
|
||||
apt-get install -y --allow-downgrades /"${TOOLS_DIR}"/cuttlefish-base_*.deb
|
||||
apt-get install -y --allow-downgrades /"${TOOLS_DIR}"/cuttlefish-user_*.deb
|
||||
fdo_log_section_end install_packages
|
||||
|
||||
export PATH=/cuttlefish/bin:/android-tools/android-cts/jdk/bin/:/android-tools/build-tools:$PATH
|
||||
|
||||
|
|
@ -105,7 +118,7 @@ cp /old_apex/apex_manifest.pb /new_apex/
|
|||
cp /old_apex/apex_build_info.pb /new_apex/
|
||||
|
||||
mkdir -p "${PWD}"/prebuilts/sdk/current/public/
|
||||
cp /android.jar "${PWD}"/prebuilts/sdk/current/public/
|
||||
cp "/${BINARIES_DIR}/android.jar" "${PWD}"/prebuilts/sdk/current/public/
|
||||
|
||||
apexer \
|
||||
--build_info /new_apex/apex_build_info.pb \
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ source "${CI_PROJECT_DIR}/.ci/android/launch-cvd.sh"
|
|||
fdo_log_section_start_collapsed run_android_vts "run_android_vts"
|
||||
adb wait-for-device devices
|
||||
adb root
|
||||
adb push /VtsHalGraphicsComposer3_TargetTest /data/local/tmp/
|
||||
adb push "/${BINARIES_DIR}/VtsHalGraphicsComposer3_TargetTest" /data/local/tmp/
|
||||
adb shell stop surfaceflinger
|
||||
|
||||
SKIP_FILE="${CI_PROJECT_DIR}/.ci/android/vts-skips.txt"
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
#!/usr/bin/env bash
|
||||
# shellcheck disable=SC1091 # no need to follow references to other shell scripts
|
||||
# Bump the DEBIAN_CUTTLEFISH_TAG for changes in this file to take effect.
|
||||
# For changes in this file to take effect, bump both:
|
||||
# DEBIAN_CUTTLEFISH_TAG and UBUNTU_ANDROID_TAG
|
||||
set -e
|
||||
|
||||
function get_repo() {
|
||||
|
|
|
|||
|
|
@ -1,131 +1,75 @@
|
|||
#!/usr/bin/env bash
|
||||
# shellcheck disable=SC1091 # no need to follow references to other shell scripts
|
||||
# no need to follow references to other shell scripts
|
||||
# shellcheck disable=SC1090
|
||||
# shellcheck disable=SC1091
|
||||
# Bump the UBUNTU_ANDROID_TAG for changes in this file to take effect.
|
||||
|
||||
set -e
|
||||
|
||||
function my_atexit()
|
||||
{
|
||||
set +e
|
||||
apt-get purge -y "${EPHEMERAL_DEPS[@]}"
|
||||
apt-get autoremove -y
|
||||
apt-get clean
|
||||
}
|
||||
|
||||
trap my_atexit EXIT
|
||||
trap 'exit 2' HUP INT PIPE TERM
|
||||
|
||||
source "${FDO_CI_BASH_HELPERS}"
|
||||
|
||||
DEPS=(
|
||||
ca-certificates
|
||||
curl
|
||||
git
|
||||
sudo
|
||||
wget
|
||||
unzip
|
||||
xz-utils
|
||||
)
|
||||
|
||||
DEPS_FOR_AOSP=(
|
||||
gpg
|
||||
gpg-agent
|
||||
rsync
|
||||
ssh
|
||||
unzip
|
||||
EPHEMERAL_DEPS=(
|
||||
skopeo
|
||||
umoci
|
||||
)
|
||||
|
||||
export DEBIAN_FRONTEND=noninteractive
|
||||
ln -fs /usr/share/zoneinfo/UTC /etc/localtime # suppress tzdata prompt
|
||||
|
||||
fdo_log_section_start_collapsed install_packages "install_packages"
|
||||
apt-get update
|
||||
apt-get upgrade -y
|
||||
apt-get install -y --no-remove --no-install-recommends "${DEPS[@]}"
|
||||
apt-get install -y --no-remove --no-install-recommends "${DEPS_FOR_AOSP[@]}"
|
||||
|
||||
curl -o /usr/local/bin/repo https://storage.googleapis.com/git-repo-downloads/repo
|
||||
chmod a+x /usr/local/bin/repo
|
||||
apt-get install -y --no-remove --no-install-recommends "${EPHEMERAL_DEPS[@]}"
|
||||
fdo_log_section_end install_packages
|
||||
|
||||
# Build and install Debian package for cuttlefish
|
||||
fdo_log_section_start_collapsed get_cuttlefish_packages "get_cuttlefish_packages"
|
||||
ANDROID_CUTTLEFISH_VERSION=v1.17.0
|
||||
mkdir /android-cuttlefish
|
||||
pushd /android-cuttlefish
|
||||
git init
|
||||
git remote add origin https://github.com/google/android-cuttlefish.git
|
||||
git fetch --depth 1 origin "$ANDROID_CUTTLEFISH_VERSION"
|
||||
git checkout FETCH_HEAD
|
||||
/android-cuttlefish/tools/buildutils/build_packages.sh
|
||||
apt-get install -y --allow-downgrades ./cuttlefish-base_*.deb ./cuttlefish-user_*.deb
|
||||
popd
|
||||
rm -rf /android-cuttlefish
|
||||
fdo_log_section_end get_cuttlefish_packages
|
||||
TMP_DIR=/tmp/my_oci
|
||||
fdo_log_section_start_collapsed get_cuttlefish "get_cuttlefish"
|
||||
mkdir -p "${TMP_DIR}"
|
||||
skopeo copy --retry-times 3 \
|
||||
--src-creds "${CI_REGISTRY_USER}:${CI_JOB_TOKEN}" \
|
||||
"docker://${CI_REGISTRY_IMAGE}/${DEBIAN_CUTTLEFISH_IMAGE}:${DEBIAN_CUTTLEFISH_TAG}--${CI_TEMPLATES_COMMIT}" \
|
||||
"oci:${TMP_DIR}/cuttlefish-oci:cf"
|
||||
umoci unpack --image "${TMP_DIR}/cuttlefish-oci:cf" "${TMP_DIR}"
|
||||
cp -a "${TMP_DIR}/rootfs/${CUTTLEFISH_TARBALL}" /"${CUTTLEFISH_TARBALL}"
|
||||
rm --preserve-root "${TMP_DIR}" -rf
|
||||
fdo_log_section_end get_cuttlefish
|
||||
|
||||
# Download Android CTS
|
||||
fdo_log_section_start_collapsed get_android_cts "get_android_cts"
|
||||
ANDROID_CTS_VERSION="${ANDROID_VERSION}_r2"
|
||||
mkdir /android-tools
|
||||
cd /android-tools
|
||||
curl -L --retry 4 -f --retry-all-errors --retry-delay 60 \
|
||||
-o "android-cts-${ANDROID_CTS_VERSION}-linux_x86-${ANDROID_CTS_DEVICE_ARCH}.zip" \
|
||||
"https://dl.google.com/dl/android/cts/android-cts-${ANDROID_CTS_VERSION}-linux_x86-${ANDROID_CTS_DEVICE_ARCH}.zip"
|
||||
unzip -q ./*.zip
|
||||
rm ./*.zip
|
||||
fdo_log_section_start_collapsed get_binaries "get_binaries"
|
||||
mkdir -p "${TMP_DIR}"
|
||||
skopeo copy --retry-times 3 \
|
||||
--src-creds "${CI_REGISTRY_USER}:${CI_JOB_TOKEN}" \
|
||||
"docker://${CI_REGISTRY_IMAGE}/${UBUNTU_ANDROID_BINARIES_IMAGE}:${UBUNTU_ANDROID_BINARIES_TAG}--${CI_TEMPLATES_COMMIT}" \
|
||||
"oci:${TMP_DIR}/binaries-oci:cf"
|
||||
umoci unpack --image "${TMP_DIR}/binaries-oci:cf" "${TMP_DIR}"
|
||||
cp -a "${TMP_DIR}/rootfs/${BINARIES_DIR}" /"${BINARIES_DIR}"
|
||||
rm --preserve-root "${TMP_DIR}" -rf
|
||||
fdo_log_section_end get_binaries
|
||||
|
||||
# Keep only the interesting tests to save space
|
||||
# shellcheck disable=SC2086 # keep word splitting
|
||||
ANDROID_CTS_MODULES_KEEP_EXPRESSION=$(printf "%s|" $ANDROID_CTS_MODULES | sed -e 's/|$//g')
|
||||
find android-cts/testcases/ -mindepth 1 -type d | grep -v -E "$ANDROID_CTS_MODULES_KEEP_EXPRESSION" | xargs rm -rf
|
||||
fdo_log_section_end get_android_cts
|
||||
|
||||
fdo_log_section_start_collapsed get_build-tools "get_build-tools"
|
||||
curl -L --retry 4 -f --retry-all-errors --retry-delay 60 \
|
||||
-o "build-tools_r${ANDROID_SDK_VERSION}-linux.zip" \
|
||||
"https://dl.google.com/android/repository/build-tools_r${ANDROID_SDK_VERSION}_linux.zip"
|
||||
unzip "build-tools_r${ANDROID_SDK_VERSION}-linux.zip"
|
||||
rm ./*.zip
|
||||
mv "android-$ANDROID_VERSION" build-tools #rename the directory
|
||||
fdo_log_section_end get_build-tools "get_build-tools"
|
||||
|
||||
fdo_log_section_start_collapsed repo_init "repo_init"
|
||||
TOP="/aosp"
|
||||
mkdir "${TOP}"
|
||||
cd "${TOP}"
|
||||
|
||||
: "${ANDROID_BRANCH:?ANDROID_BRANCH is not set}"
|
||||
|
||||
# prevent interactive colour diffs question
|
||||
yes n | repo init \
|
||||
-u https://android.googlesource.com/platform/manifest \
|
||||
-b "${ANDROID_BRANCH}" \
|
||||
--depth=1
|
||||
|
||||
# Don't increase parallel jobs or they will be denied
|
||||
time repo sync --fail-fast --no-tags -j2
|
||||
fdo_log_section_end repo_init
|
||||
|
||||
fdo_log_section_start_collapsed build_vts "build_vts"
|
||||
source "${TOP}/build/envsetup.sh"
|
||||
export TARGET_BUILD_VARIANT=userdebug
|
||||
export TARGET_PRODUCT=aosp_cf_x86_64_slim
|
||||
export TARGET_RELEASE=bp2a
|
||||
lunch "${TARGET_PRODUCT}-${TARGET_RELEASE}-${TARGET_BUILD_VARIANT}"
|
||||
time m VtsHalGraphicsComposer3_TargetTest > "/vts.log.txt" 2>&1
|
||||
cp "${TOP}/out/target/product/vsoc_x86_64_only/data/nativetest64/VtsHalGraphicsComposer3_TargetTest/VtsHalGraphicsComposer3_TargetTest" \
|
||||
"/VtsHalGraphicsComposer3_TargetTest"
|
||||
fdo_log_section_end build_vts
|
||||
|
||||
fdo_log_section_start_collapsed build_apexer "build_apexer"
|
||||
m apexer-host
|
||||
cp "${TOP}/out/host/linux-x86/bin/apexer" "/android-tools/build-tools/apexer"
|
||||
fdo_log_section_end build_apexer
|
||||
|
||||
cp "${TOP}/prebuilts/sdk/current/public/android.jar" "/android.jar"
|
||||
|
||||
fdo_log_section_start_collapsed build_vkms_tests "build_vkms_tests"
|
||||
m setup_vkms_connectors_for_atest;
|
||||
cp "${TOP}/out/target/product/vsoc_x86_64_only/system/bin/setup_vkms_connectors_for_atest" \
|
||||
"/${BINARIES_DIR}/setup_vkms_connectors_for_atest"
|
||||
|
||||
m teardown_vkms;
|
||||
cp "${TOP}/out/target/product/vsoc_x86_64_only/system/bin/teardown_vkms" \
|
||||
"/${BINARIES_DIR}/teardown_vkms"
|
||||
|
||||
m test_hotplugs
|
||||
cp "${TOP}/out/target/product/vsoc_x86_64_only/data/nativetest64/test_hotplugs/test_hotplugs" \
|
||||
"/${BINARIES_DIR}/test_hotplugs"
|
||||
fdo_log_section_end build_vkms_tests
|
||||
|
||||
# clean up
|
||||
rm "/root/.cache" -rf
|
||||
rm "${TOP}" -rf
|
||||
fdo_log_section_start_collapsed get_tools "get_tools"
|
||||
mkdir -p "${TMP_DIR}"
|
||||
skopeo copy --retry-times 3 \
|
||||
--src-creds "${CI_REGISTRY_USER}:${CI_JOB_TOKEN}" \
|
||||
"docker://${CI_REGISTRY_IMAGE}/${UBUNTU_ANDROID_TOOLS_IMAGE}:${UBUNTU_ANDROID_TOOLS_TAG}--${CI_TEMPLATES_COMMIT}" \
|
||||
"oci:${TMP_DIR}/tools-oci:cf"
|
||||
umoci unpack --image "${TMP_DIR}/tools-oci:cf" "${TMP_DIR}"
|
||||
cp -a "${TMP_DIR}/rootfs/${ANDROID_TOOLS_TARBALL}" /"${ANDROID_TOOLS_TARBALL}"
|
||||
rm --preserve-root "${TMP_DIR}" -rf
|
||||
fdo_log_section_end get_tools
|
||||
|
|
|
|||
112
.ci/container/ubuntu/x86_64_android_binaries.sh
Executable file
112
.ci/container/ubuntu/x86_64_android_binaries.sh
Executable file
|
|
@ -0,0 +1,112 @@
|
|||
#!/usr/bin/env bash
|
||||
# no need to follow references to other shell scripts
|
||||
# shellcheck disable=SC1090
|
||||
# shellcheck disable=SC1091
|
||||
# For changes in this file to take effect, bump both:
|
||||
# UBUNTU_ANDROID_BINARIES_TAG and UBUNTU_ANDROID_TAG
|
||||
|
||||
set -e
|
||||
|
||||
function my_atexit()
|
||||
{
|
||||
set +e
|
||||
apt-get purge -y "${DEPS_FOR_AOSP[@]}"
|
||||
apt-get autoremove -y
|
||||
apt-get clean
|
||||
rm --preserve-root "${BINARIES_DIR}" -rf
|
||||
rm --preserve-root /root/.cache/ -rf
|
||||
rm --preserve-root /root/.npm/ -rf
|
||||
rm --preserve-root /tmp/* -rf
|
||||
rm --preserve-root /usr/local/bin/repo
|
||||
rm --preserve-root "${TOP}" -rf
|
||||
}
|
||||
|
||||
trap my_atexit EXIT
|
||||
trap 'exit 2' HUP INT PIPE TERM
|
||||
|
||||
source "${FDO_CI_BASH_HELPERS}"
|
||||
|
||||
DEPS=(
|
||||
ca-certificates
|
||||
curl
|
||||
git
|
||||
sudo
|
||||
wget
|
||||
xz-utils
|
||||
)
|
||||
|
||||
DEPS_FOR_AOSP=(
|
||||
gpg
|
||||
gpg-agent
|
||||
python3
|
||||
rsync
|
||||
ssh
|
||||
unzip
|
||||
)
|
||||
|
||||
export DEBIAN_FRONTEND=noninteractive
|
||||
ln -fs /usr/share/zoneinfo/UTC /etc/localtime # suppress tzdata prompt
|
||||
|
||||
fdo_log_section_start_collapsed install_packages "install_packages"
|
||||
apt-get update
|
||||
apt-get upgrade -y
|
||||
apt-get install -y --no-remove --no-install-recommends "${DEPS[@]}"
|
||||
apt-get install -y --no-remove --no-install-recommends "${DEPS_FOR_AOSP[@]}"
|
||||
|
||||
curl -o /usr/local/bin/repo https://storage.googleapis.com/git-repo-downloads/repo
|
||||
chmod a+x /usr/local/bin/repo
|
||||
|
||||
fdo_log_section_end install_packages
|
||||
|
||||
fdo_log_section_start_collapsed repo_init "repo_init"
|
||||
TOP="/aosp"
|
||||
mkdir "${TOP}"
|
||||
cd "${TOP}"
|
||||
|
||||
: "${ANDROID_BRANCH:?ANDROID_BRANCH is not set}"
|
||||
|
||||
# prevent interactive colour diffs question
|
||||
yes n | repo init \
|
||||
-u https://android.googlesource.com/platform/manifest \
|
||||
-b "${ANDROID_BRANCH}" \
|
||||
--depth=1
|
||||
|
||||
# Don't increase parallel jobs or they will be denied
|
||||
time repo sync --fail-fast --no-tags -j2
|
||||
fdo_log_section_end repo_init
|
||||
|
||||
source "${TOP}/build/envsetup.sh"
|
||||
export TARGET_BUILD_VARIANT=userdebug
|
||||
export TARGET_PRODUCT=aosp_cf_x86_64_slim
|
||||
export TARGET_RELEASE=bp2a
|
||||
lunch "${TARGET_PRODUCT}-${TARGET_RELEASE}-${TARGET_BUILD_VARIANT}"
|
||||
|
||||
: "${BINARIES_DIR:?BINARIES_DIR is not set}"
|
||||
mkdir "/${BINARIES_DIR}"
|
||||
|
||||
fdo_log_section_start_collapsed build_vts "build_vts"
|
||||
m VtsHalGraphicsComposer3_TargetTest
|
||||
cp "${TOP}/out/target/product/vsoc_x86_64_only/data/nativetest64/VtsHalGraphicsComposer3_TargetTest/VtsHalGraphicsComposer3_TargetTest" \
|
||||
"/${BINARIES_DIR}/VtsHalGraphicsComposer3_TargetTest"
|
||||
fdo_log_section_end build_vts
|
||||
|
||||
fdo_log_section_start_collapsed build_apexer "build_apexer"
|
||||
m apexer-host
|
||||
cp "${TOP}/out/host/linux-x86/bin/apexer" "/${BINARIES_DIR}/apexer"
|
||||
fdo_log_section_end build_apexer
|
||||
|
||||
cp "${TOP}/prebuilts/sdk/current/public/android.jar" "/${BINARIES_DIR}/android.jar"
|
||||
|
||||
fdo_log_section_start_collapsed build_vkms_tests "build_vkms_tests"
|
||||
m setup_vkms_connectors_for_atest;
|
||||
cp "${TOP}/out/target/product/vsoc_x86_64_only/system/bin/setup_vkms_connectors_for_atest" \
|
||||
"/${BINARIES_DIR}/setup_vkms_connectors_for_atest"
|
||||
|
||||
m teardown_vkms;
|
||||
cp "${TOP}/out/target/product/vsoc_x86_64_only/system/bin/teardown_vkms" \
|
||||
"/${BINARIES_DIR}/teardown_vkms"
|
||||
|
||||
m test_hotplugs
|
||||
cp "${TOP}/out/target/product/vsoc_x86_64_only/data/nativetest64/test_hotplugs/test_hotplugs" \
|
||||
"/${BINARIES_DIR}/test_hotplugs"
|
||||
fdo_log_section_end build_vkms_tests
|
||||
116
.ci/container/ubuntu/x86_64_android_tools.sh
Executable file
116
.ci/container/ubuntu/x86_64_android_tools.sh
Executable file
|
|
@ -0,0 +1,116 @@
|
|||
#!/usr/bin/env bash
|
||||
# shellcheck disable=SC1090 # no need to follow references to other shell scripts
|
||||
# For changes in this file to take effect, bump both:
|
||||
# UBUNTU_ANDROID_TOOLS_TAG and UBUNTU_ANDROID_TAG
|
||||
|
||||
|
||||
set -e
|
||||
|
||||
function my_atexit()
|
||||
{
|
||||
set +e
|
||||
apt-get purge -y "${EPHEMERAL_DEPS[@]}"
|
||||
apt-get autoremove -y
|
||||
apt-get clean
|
||||
rm --preserve-root "${TOOLS_DIR}" -rf
|
||||
rm --preserve-root /root/.cache/ -rf
|
||||
rm --preserve-root /root/.npm/ -rf
|
||||
rm --preserve-root /tmp/* -rf
|
||||
}
|
||||
|
||||
trap my_atexit EXIT
|
||||
trap 'exit 2' HUP INT PIPE TERM
|
||||
|
||||
source "${FDO_CI_BASH_HELPERS}"
|
||||
|
||||
DEPS=(
|
||||
ca-certificates
|
||||
curl
|
||||
git
|
||||
sudo
|
||||
wget
|
||||
xz-utils
|
||||
)
|
||||
|
||||
EPHEMERAL_DEPS=(
|
||||
bazel
|
||||
binutils
|
||||
curl
|
||||
emacsen-common
|
||||
gcc
|
||||
gettext
|
||||
git
|
||||
gnupg
|
||||
golang
|
||||
libfakeroot
|
||||
m4
|
||||
make
|
||||
man-db
|
||||
perl
|
||||
python3
|
||||
openssl
|
||||
)
|
||||
|
||||
export DEBIAN_FRONTEND=noninteractive
|
||||
ln -fs /usr/share/zoneinfo/UTC /etc/localtime # suppress tzdata prompt
|
||||
|
||||
fdo_log_section_start_collapsed install_packages "install_packages"
|
||||
apt-get update
|
||||
apt-get upgrade -y
|
||||
apt-get install -y --no-remove --no-install-recommends "${DEPS[@]}"
|
||||
fdo_log_section_end install_packages
|
||||
|
||||
: "${TOOLS_DIR:?TOOLS_DIR is not set}"
|
||||
mkdir "${TOOLS_DIR}"
|
||||
|
||||
# Build debian packages for cuttlefish
|
||||
fdo_log_section_start_collapsed get_cuttlefish_packages "get_cuttlefish_packages"
|
||||
ANDROID_CUTTLEFISH_VERSION=v1.17.0
|
||||
CUT_DIR="/android-cuttlefish"
|
||||
mkdir "${CUT_DIR}"
|
||||
pushd "${CUT_DIR}"
|
||||
git init
|
||||
git remote add origin https://github.com/google/android-cuttlefish.git
|
||||
git fetch --depth 1 origin "${ANDROID_CUTTLEFISH_VERSION}"
|
||||
git checkout FETCH_HEAD
|
||||
${CUT_DIR}/tools/buildutils/build_packages.sh
|
||||
popd
|
||||
cp -a "${CUT_DIR}"/cuttlefish-base_*.deb "${TOOLS_DIR}"
|
||||
cp -a "${CUT_DIR}"/cuttlefish-user_*.deb "${TOOLS_DIR}"
|
||||
rm "${CUT_DIR}" -rf
|
||||
fdo_log_section_end get_cuttlefish_packages
|
||||
|
||||
# Download Android CTS https://source.android.com/docs/compatibility/cts/downloads
|
||||
fdo_log_section_start_collapsed get_android_cts "get_android_cts"
|
||||
CTS_DIR="/cts"
|
||||
mkdir "${CTS_DIR}"
|
||||
ANDROID_CTS_VERSION="${ANDROID_VERSION}_r2"
|
||||
curl -L --retry 4 -f --retry-all-errors --retry-delay 60 \
|
||||
-o "${CTS_DIR}/cts.zip" \
|
||||
"https://dl.google.com/dl/android/cts/android-cts-${ANDROID_CTS_VERSION}-linux_x86-x86.zip"
|
||||
unzip -q "${CTS_DIR}/cts.zip" -d "${CTS_DIR}"
|
||||
rm "${CTS_DIR}/cts.zip"
|
||||
|
||||
# Keep only the interesting tests to save space
|
||||
# shellcheck disable=SC2086 # keep word splitting
|
||||
ANDROID_CTS_MODULES_KEEP_EXPRESSION=$(printf "%s|" $ANDROID_CTS_MODULES | sed -e 's/|$//g')
|
||||
find "${CTS_DIR}"/android-cts/testcases/ -mindepth 1 -type d | grep -v -E "$ANDROID_CTS_MODULES_KEEP_EXPRESSION" | xargs rm -rf
|
||||
mv "${CTS_DIR}"/android-cts "${TOOLS_DIR}"
|
||||
rm "${CTS_DIR}" -rf
|
||||
fdo_log_section_end get_android_cts
|
||||
|
||||
fdo_log_section_start_collapsed get_build-tools "get_build-tools"
|
||||
BUILD_TOOLS_DIR="/build-tools"
|
||||
mkdir "${BUILD_TOOLS_DIR}"
|
||||
curl -L --retry 4 -f --retry-all-errors --retry-delay 60 \
|
||||
-o "${BUILD_TOOLS_DIR}/build-tools.zip" \
|
||||
"https://dl.google.com/android/repository/build-tools_r${ANDROID_SDK_VERSION}_linux.zip"
|
||||
unzip "${BUILD_TOOLS_DIR}/build-tools.zip" -d "${BUILD_TOOLS_DIR}"
|
||||
rm "${BUILD_TOOLS_DIR}/build-tools.zip"
|
||||
mv "${BUILD_TOOLS_DIR}/android-$ANDROID_VERSION" "${TOOLS_DIR}"/build-tools #rename the directory
|
||||
rm "${BUILD_TOOLS_DIR}" -rf
|
||||
fdo_log_section_end get_build-tools "get_build-tools"
|
||||
|
||||
: "${ANDROID_TOOLS_TARBALL:?ANDROID_TOOLS_TARBALL is not set}"
|
||||
|
||||
time tar -cf - "${TOOLS_DIR}" | xz --best -e -T"${FDO_CI_CONCURRENT:-4}" > "/${ANDROID_TOOLS_TARBALL}"
|
||||
|
|
@ -1,3 +1,6 @@
|
|||
# IMPORTANT
|
||||
# If updating DEBIAN_CUTTLEFISH_TAG, UBUNTU_ANDROID_TOOLS_TAG, UBUNTU_ANDROID_BINARIES_TAG
|
||||
# also update UBUNTU_ANDROID_TAG for these changes to have any effect
|
||||
|
||||
variables:
|
||||
DEBIAN_CUTTLEFISH_IMAGE: "debian/x86_64_cuttlefish"
|
||||
|
|
@ -5,4 +8,8 @@ variables:
|
|||
UBUNTU_AOSPLESS_IMAGE: "ubuntu/x86_64_aospless"
|
||||
UBUNTU_AOSPLESS_TAG: "20250815_a16"
|
||||
UBUNTU_ANDROID_IMAGE: "ubuntu/x86_64_android"
|
||||
UBUNTU_ANDROID_TAG: "20250815.1_a16"
|
||||
UBUNTU_ANDROID_TAG: "20250828_rf"
|
||||
UBUNTU_ANDROID_TOOLS_IMAGE: "ubuntu/x86_64_android_tools"
|
||||
UBUNTU_ANDROID_TOOLS_TAG: "20250827_rf"
|
||||
UBUNTU_ANDROID_BINARIES_IMAGE: "ubuntu/x86_64_android_binaries"
|
||||
UBUNTU_ANDROID_BINARIES_TAG: "20250828_rf"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue