aboutsummaryrefslogtreecommitdiff
path: root/lkft/common/build-aosp.sh
diff options
context:
space:
mode:
Diffstat (limited to 'lkft/common/build-aosp.sh')
-rwxr-xr-xlkft/common/build-aosp.sh128
1 files changed, 78 insertions, 50 deletions
diff --git a/lkft/common/build-aosp.sh b/lkft/common/build-aosp.sh
index 70461c678b..61be333f46 100755
--- a/lkft/common/build-aosp.sh
+++ b/lkft/common/build-aosp.sh
@@ -3,62 +3,53 @@
export PATH=${HOME}/bin:${PATH}
export JAVA_TOOL_OPTIONS=-Dfile.encoding=UTF8
-#BUILD_CONFIG_FILENAME=aosp-master-x15
-#KERNEL_REPO_URL=/data/android/aosp-mirror/kernel/omap.git
-#OPT_MIRROR="-m /data/android/aosp-mirror/platform/manifest.git"
-#BUILD_ROOT="/data/android/aosp/pure-master/test-x15-lkft"
-#CLEAN_UP=false
-#IN_JENKINS=false
-
BUILD_ROOT="${BUILD_ROOT:-/home/buildslave/srv/aosp-public}"
OPT_MIRROR="${OPT_MIRROR:-}"
CLEAN_UP=${CLEAN_UP:-true}
-ANDROID_ROOT="${BUILD_ROOT}/build/aosp"
-DIR_PUB_SRC="${BUILD_ROOT}/dist"
+ANDROID_ROOT="${BUILD_ROOT}/build/aosp-${BUILD_NUMBER}"
+KERNEL_ROOT="${BUILD_ROOT}/build/kernel-${BUILD_NUMBER}"
+DIR_PUB_SRC="${BUILD_ROOT}/dist-${BUILD_NUMBER}"
AOSP_REPO_BACKUP="${BUILD_ROOT}/aosp-repo-backup"
ANDROID_IMAGE_FILES="boot.img dtb.img dtbo.img super.img vendor.img product.img system.img system_ext.img vbmeta.img userdata.img ramdisk.img ramdisk-debug.img recovery.img cache.img"
ANDROID_IMAGE_FILES="${ANDROID_IMAGE_FILES} vendor_boot-debug.img vendor_boot.img"
-# functions for clean the environemnt before repo sync and build
function prepare_environment(){
if [ ! -d "${BUILD_ROOT}" ]; then
sudo mkdir -p "${BUILD_ROOT}"
sudo chmod 777 "${BUILD_ROOT}"
fi
cd "${BUILD_ROOT}"
+}
- # clean manifest files under ${ANDROID_ROOT}
- rm -rf "${ANDROID_ROOT}/.repo/manifests" "${ANDROID_ROOT}/.repo/manifests.git" "${ANDROID_ROOT}/.repo/manifests.xml" "${ANDROID_ROOT}/.repo/local_manifests" "${ANDROID_ROOT}/build-tools" "${ANDROID_ROOT}/jenkins-tools"
-
- # clean the build directory as it is used accross multiple builds
- # by removing all files except the .repo directory
- if ${CLEAN_UP}; then
- rm -fr "${AOSP_REPO_BACKUP}"
- if [ -d "${ANDROID_ROOT}/.repo" ]; then
- mv -f "${ANDROID_ROOT}/.repo" "${AOSP_REPO_BACKUP}"
- fi
- rm -fr "${ANDROID_ROOT}" && mkdir -p "${ANDROID_ROOT}"
- if [ -d "${AOSP_REPO_BACKUP}" ]; then
- mv -f "${AOSP_REPO_BACKUP}" "${ANDROID_ROOT}/.repo"
- fi
+###############################################################
+# Build the kernel images that would be used for the userspace
+# All operations following should be done under ${KERNEL_ROOT}
+###############################################################
+function build_kernel(){
+ if [ -z "${KERNEL_BUILD_CONFIG}" ]; then
+ return
fi
+ sudo rm -fr "${KERNEL_ROOT}" && mkdir -p "${KERNEL_ROOT}" && cd "${KERNEL_ROOT}"
+ wget https://android-git.linaro.org/android-build-configs.git/plain/lkft/linaro-lkft.sh?h=lkft -O linaro-lkft.sh
+ chmod +x linaro-lkft.sh
+ BUILD_KERNEL_WITH_UPSTREAM_BUILD=true ./linaro-lkft.sh -c "${KERNEL_BUILD_CONFIG}" -obk
+ cp -vf out/"${KERNEL_BUILD_CONFIG}"/pinned-manifest/*-pinned.xml "${DIR_PUB_SRC}/kernel-pinned-manifest.xml"
+ cp -vf "android-build-configs/lkft/${KERNEL_BUILD_CONFIG}" "${DIR_PUB_SRC}/${KERNEL_BUILD_CONFIG}"
}
-
###############################################################
# Build Android userspace images
# All operations following should be done under ${ANDROID_ROOT}
###############################################################
function build_android(){
- mkdir -p "${ANDROID_ROOT}" && cd "${ANDROID_ROOT}"
- rm -fr "${DIR_PUB_SRC}" && mkdir -p "${DIR_PUB_SRC}"
+ sudo rm -fr "${ANDROID_ROOT}" && mkdir -p "${ANDROID_ROOT}" && cd "${ANDROID_ROOT}"
rm -fr "${ANDROID_ROOT}/out/pinned-manifest"
rm -fr android-build-configs linaro-build.sh
wget -c https://android-git.linaro.org/android-build-configs.git/plain/linaro-build.sh -O linaro-build.sh
chmod +x linaro-build.sh
if [ -n "${ANDROID_BUILD_CONFIG}" ]; then
- bash -x ./linaro-build.sh -c "${ANDROID_BUILD_CONFIG}"
+ bash -ex ./linaro-build.sh -c "${ANDROID_BUILD_CONFIG}"
# ${ANDROID_BUILD_CONFIG} will be repo synced after build
# shellcheck source=/dev/null
source "android-build-configs/${ANDROID_BUILD_CONFIG}"
@@ -70,11 +61,17 @@ function build_android(){
[ -n "${MANIFEST_URL}" ] && opt_maniefst_url="-m ${MANIFEST_URL}"
[ -n "${MAKE_TARGETS}" ] && export MAKE_TARGETS
# shellcheck disable=SC2086
- bash -x ./linaro-build.sh -tp "${TARGET_PRODUCT}" ${opt_maniefst_url} ${opt_manfest_branch}
+ bash -ex ./linaro-build.sh -tp "${TARGET_PRODUCT}" ${opt_maniefst_url} ${opt_manfest_branch}
+ fi
+ if echo "${TARGET_PRODUCT}" | grep "trunk_staging"; then
+ # with the main branch, there are release information, like aosp_arm64-trunk_staging
+ TARGET_PRODUCT=$(echo "${TARGET_PRODUCT}"|cut -d- -f1)
fi
if [ "X${TARGET_PRODUCT}X" = "Xaosp_arm64X" ]; then
- # for cts and vts
+ # for cts, vts, gsi
DIR_PUB_SRC_PRODUCT="${ANDROID_ROOT}/out/target/product/generic_arm64"
+ elif [ "X${TARGET_PRODUCT}X" = "Xbeagle_x15_autoX" ]; then
+ DIR_PUB_SRC_PRODUCT="${ANDROID_ROOT}/out/target/product/beagle_x15"
else
DIR_PUB_SRC_PRODUCT="${ANDROID_ROOT}/out/target/product/${TARGET_PRODUCT}"
fi
@@ -91,8 +88,16 @@ function build_android(){
for f in ${PUBLISH_FILES}; do
if [ "X${f}X" = "Xandroid-cts.zipX" ]; then
f_src_path="${ANDROID_ROOT}/out/host/linux-x86/cts/android-cts.zip"
+ if [ "X${SPLIT_CTS}X" = "XtrueX" ]; then
+ split -b 4GB -d --additional-suffix=.split "${f_src_path}" "${f_src_path}."
+ # shellcheck disable=SC2086
+ mv -vf ${f_src_path}.*.split "${DIR_PUB_SRC}/"
+ continue
+ fi
elif [ "X${f}X" = "Xandroid-vts.zipX" ]; then
f_src_path="${ANDROID_ROOT}/out/host/linux-x86/vts/android-vts.zip"
+ elif [ "X${f}X" = "Xuserdebug_plat_sepolicy.cilX" ]; then
+ f_src_path="${DIR_PUB_SRC_PRODUCT}/debug_ramdisk/${f}"
else
f_src_path="${DIR_PUB_SRC_PRODUCT}/${f}"
fi
@@ -103,7 +108,10 @@ function build_android(){
mv -vf "${f_src_path}" "${DIR_PUB_SRC}/${f}"
fi
- if [ "Xramdisk.img" = "X${f}" ] || [ "Xramdisk-debug.img" = "X${f}" ] || [ "Xandroid-cts.zip" = "X${f}" ] || [ "Xandroid-vts.zip" = "X${f}" ]; then
+ if [ "Xramdisk.img" = "X${f}" ] || [ "Xramdisk-debug.img" = "X${f}" ] \
+ || [ "Xuserdebug_plat_sepolicy.cil" = "X${f}" ] \
+ || [ "Xandroid-cts.zip" = "X${f}" ] \
+ || [ "Xandroid-vts.zip" = "X${f}" ]; then
# files no need to compress
continue
else
@@ -131,42 +139,62 @@ function build_android(){
# clean workspace to save space
function clean_workspace(){
- cd "${ANDROID_ROOT}"
# Delete sources after build to save space
- rm -rf art/ dalvik/ kernel/ bionic/ developers/ libcore/ sdk/ bootable/ development/
- rm -fr libnativehelper/ system/ build/ device/ test/ build-info/ docs/ packages/
- rm -fr toolchain/ .ccache/ external/ pdk/ tools/ compatibility/ frameworks/
- rm -fr platform_testing/ vendor/ cts/ hardware/ prebuilts/
+ sudo rm -fr "${ANDROID_ROOT}"
+ sudo rm -fr "${KERNEL_ROOT}"
}
# export parameters for publish/job submission steps
function export_parameters(){
- if [ "X${f}X" = "Xandroid-cts.zipX" ]; then
- PUB_DEST_TARGET="android-cts"
- elif [ "X${f}X" = "Xandroid-vts.zipX" ]; then
- PUB_DEST_TARGET="android-vts"
- elif [ "X${TARGET_PRODUCT}" = "Xbeagle_x15" ]; then
- # beagle_x15 could not used as part of the url for snapshot site
- PUB_DEST_TARGET=x15
- else
- PUB_DEST_TARGET=${TARGET_PRODUCT}
- fi
-
# Publish parameters
# The pinned-manifest was copied into the publist directory as pinned-manifest.xml already
cp -a "${DIR_PUB_SRC}/pinned-manifest.xml" "${WORKSPACE}/"
- echo "PUB_DEST=android/lkft/${PUB_DEST_TARGET}/${BUILD_NUMBER}" > "${WORKSPACE}/publish_parameters"
+
+ if [ -n "${PUB_DEST_PATH}" ]; then
+ PUB_DEST="${PUB_DEST_PATH}/${BUILD_NUMBER}"
+ else
+ if [ -n "${ANDROID_BUILD_CONFIG}" ]; then
+ PUB_DEST_TARGET="${ANDROID_BUILD_CONFIG}"
+ elif [ "X${f}X" = "Xandroid-cts.zipX" ]; then
+ PUB_DEST_TARGET="android-cts"
+ elif [ "X${f}X" = "Xandroid-vts.zipX" ]; then
+ PUB_DEST_TARGET="android-vts"
+ elif [ "X${TARGET_PRODUCT}" = "Xbeagle_x15" ]; then
+ # beagle_x15 could not used as part of the url for snapshot site
+ PUB_DEST_TARGET=x15
+ else
+ PUB_DEST_TARGET=${TARGET_PRODUCT}
+ fi
+ PUB_DEST="android/lkft/${PUB_DEST_TARGET}/${BUILD_NUMBER}"
+ fi
+
+ echo "PUB_DEST=${PUB_DEST}" > "${WORKSPACE}/publish_parameters"
echo "PUB_SRC=${DIR_PUB_SRC}" >> "${WORKSPACE}/publish_parameters"
- echo "PUB_EXTRA_INC=^[^/]+\.(txt|img|xz|dtb|dtbo|zip)$|MLO|vmlinux|System.map" >> "${WORKSPACE}/publish_parameters"
+ echo "PUB_EXTRA_INC=^[^/]+\.(txt|img|xz|dtb|dtbo|zip|split|cil)$|MLO|vmlinux|System.map" >> "${WORKSPACE}/publish_parameters"
}
function main(){
+ # print for debug purpose
+ df -h
+ ls -l1d ${BUILD_ROOT}/build/* || true
+ ls -l1d ${BUILD_ROOT}/* || true
+ ################
prepare_environment
+ rm -fr "${DIR_PUB_SRC}" && mkdir -p "${DIR_PUB_SRC}"
+ if [ -n "${KERNEL_BUILD_CONFIG}" ]; then
+ build_kernel
+ export LOCAL_KERNEL_HOME=${KERNEL_ROOT}/out/${KERNEL_BUILD_CONFIG}/vendor-kernel/dist
+ kernel_ver=$(grep GKI_KERNEL_MAKEVERSION "${KERNEL_ROOT}/out/${KERNEL_BUILD_CONFIG}/misc_info.txt" | cut -d= -f2)
+ if [ -z "${kernel_ver}" ]; then
+ kernel_ver=$(grep VENDOR_KERNEL_MAKEVERSION "${KERNEL_ROOT}/out/${KERNEL_BUILD_CONFIG}/misc_info.txt" | cut -d= -f2 )
+ fi
+ export TARGET_KERNEL_USE=${kernel_ver}
+ fi
build_android
if ${IN_JENKINS} && [ -n "${WORKSPACE}" ]; then
- clean_workspace
export_parameters
+ clean_workspace
fi
}