#!/bin/bash -eux # # Script to run some local APEX tests while APEX support is WIP and not easily testable on CI set -o pipefail # TODO: Refactor build/make/envsetup.sh to make gettop() available elsewhere function gettop { # Function uses potentially uninitialzied variables set +u local TOPFILE=build/bazel/bazel.sh if [ -n "$TOP" -a -f "$TOP/$TOPFILE" ] ; then # The following circumlocution ensures we remove symlinks from TOP. (cd "$TOP"; PWD= /bin/pwd) else if [ -f $TOPFILE ] ; then # The following circumlocution (repeated below as well) ensures # that we record the true directory name and not one that is # faked up with symlink names. PWD= /bin/pwd else local HERE=$PWD local T= while [ \( ! \( -f $TOPFILE \) \) -a \( "$PWD" != "/" \) ]; do \cd .. T=`PWD= /bin/pwd -P` done \cd "$HERE" if [ -f "$T/$TOPFILE" ]; then echo "$T" fi fi fi set -u } AOSP_ROOT=`gettop` # Generate BUILD files into out/soong/bp2build "${AOSP_ROOT}/build/soong/soong_ui.bash" --make-mode BP2BUILD_VERBOSE=1 bp2build --skip-soong-tests BUILD_FLAGS_LIST=( --color=no --curses=no --show_progress_rate_limit=5 --config=bp2build ) BUILD_FLAGS="${BUILD_FLAGS_LIST[@]}" TEST_FLAGS_LIST=( --keep_going --test_output=errors ) TEST_FLAGS="${TEST_FLAGS_LIST[@]}" BUILD_TARGETS_LIST=( //build/bazel/examples/apex/minimal:build.bazel.examples.apex.minimal //system/timezone/apex:com.android.tzdata ) BUILD_TARGETS="${BUILD_TARGETS_LIST[@]}" echo "Building APEXes with Bazel..." ${AOSP_ROOT}/tools/bazel --max_idle_secs=5 build ${BUILD_FLAGS} --platforms //build/bazel/platforms:android_x86 -k ${BUILD_TARGETS} ${AOSP_ROOT}/tools/bazel --max_idle_secs=5 build ${BUILD_FLAGS} --platforms //build/bazel/platforms:android_x86_64 -k ${BUILD_TARGETS} ${AOSP_ROOT}/tools/bazel --max_idle_secs=5 build ${BUILD_FLAGS} --platforms //build/bazel/platforms:android_arm -k ${BUILD_TARGETS} ${AOSP_ROOT}/tools/bazel --max_idle_secs=5 build ${BUILD_FLAGS} --platforms //build/bazel/platforms:android_arm64 -k ${BUILD_TARGETS} set +x echo echo "All tests passed, you are awesome!"