summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Justin Yun <justinyun@google.com> 2024-12-13 15:16:01 +0900
committer Justin Yun <justinyun@google.com> 2024-12-12 22:41:31 -0800
commit651a3a04faaf8d4d1aa647ea6dcfa98af82c2062 (patch)
tree21bd2a0e07b480190d701b413892ec63af79bd11
parentb39d8b1b8d7c9490f0c1f1a1aee44daccd7017e7 (diff)
Use --steps_for_build_test_only option to skip some steps
We don't need to run all finalization steps on each CI build target. Use --steps_for_build_test_only option to skip ABI dump and VINTF check steps for CI build tests. It is sufficient to build the full steps on a single target but not all. The finalization takes 30 minutes with this option. It took 2 hours to complete full steps without the option. Ignore-AOSP-First: finalization script is an exception Bug: 382626911 Test: build/make/tools/finalization/build-step-0.sh \ --steps_for_build_test_only && m Change-Id: Ib4f04a2d2b4e54c4d9631be535ba0f44b1080fb1
-rwxr-xr-xtools/finalization/build-step-0.sh4
-rwxr-xr-xtools/finalization/finalize-vintf-resources.sh38
2 files changed, 31 insertions, 11 deletions
diff --git a/tools/finalization/build-step-0.sh b/tools/finalization/build-step-0.sh
index 8826b35c0f..bc41a196e8 100755
--- a/tools/finalization/build-step-0.sh
+++ b/tools/finalization/build-step-0.sh
@@ -25,8 +25,8 @@ RELEASE_BOARD_API_LEVEL='$FINAL_BOARD_API_LEVEL'"
fi;
if [ "$need_vintf_finalize" = true ] ; then # VINTF finalization
- source $top/build/make/tools/finalization/finalize-vintf-resources.sh
+ source $top/build/make/tools/finalization/finalize-vintf-resources.sh $@
fi;
}
-finalize_main_step0
+finalize_main_step0 $@
diff --git a/tools/finalization/finalize-vintf-resources.sh b/tools/finalization/finalize-vintf-resources.sh
index 45efc104db..2a92959e34 100755
--- a/tools/finalization/finalize-vintf-resources.sh
+++ b/tools/finalization/finalize-vintf-resources.sh
@@ -3,6 +3,21 @@
set -ex
function finalize_vintf_resources() {
+ if [ $# -gt 1 ]; then
+ echo "No argument or '--steps_for_build_test_only' is allowed"
+ exit 1
+ fi
+ if [ $# -eq 1 ]; then
+ if [ "$1" == "--steps_for_build_test_only" ]; then
+ echo "This is only to verify building a target."
+ echo "Skip LLNDK ABI dump and VINTF check."
+ local build_test_only=true
+ else
+ echo "Unknown argument $1"
+ exit 1
+ fi
+ fi
+
local top="$(dirname "$0")"/../../../..
source $top/build/make/tools/finalization/environment.sh
# environment needed to build dependencies and run scripts
@@ -26,18 +41,21 @@ function finalize_vintf_resources() {
# system/sepolicy
"$top/system/sepolicy/tools/finalize-vintf-resources.sh" "$top" "$FINAL_BOARD_API_LEVEL"
- create_new_compat_matrix_and_kernel_configs
+ create_new_compat_matrix_and_kernel_configs $build_test_only
# pre-finalization build target (trunk)
local aidl_m="$top/build/soong/soong_ui.bash --make-mode"
AIDL_TRANSITIVE_FREEZE=true $aidl_m aidl-freeze-api create_reference_dumps
- # Generate LLNDK ABI dumps
- # This command depends on ANDROID_BUILD_TOP
- "$ANDROID_HOST_OUT/bin/create_reference_dumps" -release "$TARGET_RELEASE" --build-variant "$TARGET_BUILD_VARIANT" --lib-variant LLNDK
+ if ! [ "$build_test_only" = "true" ]; then
+ # Generate LLNDK ABI dumps
+ # This command depends on ANDROID_BUILD_TOP
+ "$ANDROID_HOST_OUT/bin/create_reference_dumps" -release "$TARGET_RELEASE" --build-variant "$TARGET_BUILD_VARIANT" --lib-variant LLNDK
+ fi
}
function create_new_compat_matrix_and_kernel_configs() {
+ local build_test_only=$1
# The compatibility matrix versions are bumped during vFRC
# These will change every time we have a new vFRC
local CURRENT_COMPATIBILITY_MATRIX_LEVEL="$FINAL_BOARD_API_LEVEL"
@@ -53,10 +71,12 @@ function create_new_compat_matrix_and_kernel_configs() {
"$top/prebuilts/build-tools/path/linux-x86/python3" "$top/hardware/interfaces/compatibility_matrices/bump.py" "$CURRENT_COMPATIBILITY_MATRIX_LEVEL" "$NEXT_COMPATIBILITY_MATRIX_LEVEL" "$CURRENT_RELEASE_LETTER" "$NEXT_RELEASE_LETTER" "$FINAL_CORRESPONDING_PLATFORM_VERSION"
- # Freeze the current framework manifest file. This relies on the
- # aosp_cf_x86_64-trunk_staging build target to get the right manifest
- # fragments installed.
- "$top/system/libhidl/vintfdata/freeze.sh" "$CURRENT_COMPATIBILITY_MATRIX_LEVEL"
+ if ! [ "$build_test_only" = "true" ]; then
+ # Freeze the current framework manifest file. This relies on the
+ # aosp_cf_x86_64-trunk_staging build target to get the right manifest
+ # fragments installed.
+ "$top/system/libhidl/vintfdata/freeze.sh" "$CURRENT_COMPATIBILITY_MATRIX_LEVEL"
+ fi
}
function freeze_framework_manifest() {
@@ -65,5 +85,5 @@ function freeze_framework_manifest() {
}
-finalize_vintf_resources
+finalize_vintf_resources $@