Kelvin Zhang | 14bca5e | 2021-12-15 19:19:35 +0800 | [diff] [blame] | 1 | #!/bin/bash |
yang.li | 0952092 | 2022-01-12 15:51:51 +0800 | [diff] [blame] | 2 | # |
yang.li | ffa60e5 | 2022-01-11 14:38:56 +0800 | [diff] [blame] | 3 | # Copyright (c) 2021-2022 Amlogic, Inc. All rights reserved. |
yang.li | 0952092 | 2022-01-12 15:51:51 +0800 | [diff] [blame] | 4 | # |
yang.li | ffa60e5 | 2022-01-11 14:38:56 +0800 | [diff] [blame] | 5 | # SPDX-License-Identifier: MIT |
yang.li | 0952092 | 2022-01-12 15:51:51 +0800 | [diff] [blame] | 6 | # |
yang.li | ffa60e5 | 2022-01-11 14:38:56 +0800 | [diff] [blame] | 7 | |
xiaohu.huang | f0eed9c | 2024-07-16 17:26:45 +0800 | [diff] [blame] | 8 | #Used filter mode and set the repository list with manual mode,plese use '#' to split |
| 9 | #For example:source scripts/build_all.sh rtos_sdk/arch/arm64#rtos_sdk/libc# |
Kelvin Zhang | 7052f1c | 2022-09-20 11:11:41 +0800 | [diff] [blame] | 10 | [ -z "$OUTPUT_DIR" ] && OUTPUT_DIR=$PWD/output |
| 11 | [ ! -d $OUTPUT_DIR ] && mkdir -p $OUTPUT_DIR |
| 12 | |
| 13 | [ -z "$BUILD_LOG" ] && BUILD_LOG="$OUTPUT_DIR/build.log" |
xiaohu.huang | 5728549 | 2024-06-26 15:47:07 +0800 | [diff] [blame] | 14 | [ -z "$LAST_BUILD_FAILURE" ] && LAST_BUILD_FAILURE="$OUTPUT_DIR/.last_build_failure" |
Kelvin Zhang | b56b950 | 2022-09-01 15:18:43 +0800 | [diff] [blame] | 15 | |
xiaohu.huang | f0eed9c | 2024-07-16 17:26:45 +0800 | [diff] [blame] | 16 | if [ "$1" == "auto" ]; then |
| 17 | CHG_REPO=$(python3 scripts/repositories_changed_filter.py) |
| 18 | else |
| 19 | CHG_REPO="$1" |
| 20 | fi |
| 21 | if [ "$CHG_REPO" == "" ]; then |
| 22 | use_filter=0 |
| 23 | else |
| 24 | echo "Changed repositories:$CHG_REPO" |
| 25 | use_filter=1 |
| 26 | fi |
| 27 | |
| 28 | failed_numer=0 |
| 29 | |
Kelvin Zhang | 7abf25b | 2022-09-15 11:18:34 +0800 | [diff] [blame] | 30 | # Clear build.log |
| 31 | cat <<EOF > $BUILD_LOG |
| 32 | EOF |
| 33 | |
Kelvin Zhang | dfd2838 | 2022-04-02 20:32:27 +0800 | [diff] [blame] | 34 | source scripts/publish.sh |
Kelvin Zhang | 14bca5e | 2021-12-15 19:19:35 +0800 | [diff] [blame] | 35 | |
Kelvin Zhang | d64c883 | 2022-04-02 19:56:24 +0800 | [diff] [blame] | 36 | if [[ "$SUBMIT_TYPE" == "daily" ]] || [[ "$SUBMIT_TYPE" == "release" ]]; then |
Kelvin Zhang | 7abf25b | 2022-09-15 11:18:34 +0800 | [diff] [blame] | 37 | echo "======== Building document ========" | tee -a $BUILD_LOG |
Kelvin Zhang | 1cbf9ed | 2022-09-13 16:27:50 +0800 | [diff] [blame] | 38 | make docs >> $BUILD_LOG 2>&1 |
bin.chen | e4efbd1 | 2023-07-13 19:23:42 +0800 | [diff] [blame] | 39 | LOCAL_DOC_PATH="$OUTPUT_DIR/docs/arm64/html" |
Kelvin Zhang | 1cbf9ed | 2022-09-13 16:27:50 +0800 | [diff] [blame] | 40 | if [ -d $LOCAL_DOC_PATH ]; then |
| 41 | pushd $LOCAL_DOC_PATH >/dev/null |
| 42 | publish_docoment |
| 43 | if [ $? -ne 0 ]; then |
| 44 | echo "Failed to update document!" |
| 45 | else |
| 46 | echo "Document updated." |
| 47 | fi |
| 48 | popd >/dev/null |
Kelvin Zhang | 2307521 | 2022-02-11 18:26:18 +0800 | [diff] [blame] | 49 | else |
Kelvin Zhang | 1cbf9ed | 2022-09-13 16:27:50 +0800 | [diff] [blame] | 50 | echo "$LOCAL_DOC_PATH not exist!" |
Kelvin Zhang | 2307521 | 2022-02-11 18:26:18 +0800 | [diff] [blame] | 51 | fi |
Kelvin Zhang | 1cbf9ed | 2022-09-13 16:27:50 +0800 | [diff] [blame] | 52 | echo -e "======== Done ========\n" | tee -a $BUILD_LOG |
Kelvin Zhang | 0978612 | 2022-02-11 15:56:08 +0800 | [diff] [blame] | 53 | fi |
| 54 | |
Kelvin Zhang | c37221a | 2022-09-07 15:18:12 +0800 | [diff] [blame] | 55 | echo "======== Building all projects ========" | tee -a $BUILD_LOG |
Kelvin Zhang | 69dc9fb | 2022-02-18 16:44:04 +0800 | [diff] [blame] | 56 | |
Kelvin Zhang | b56b950 | 2022-09-01 15:18:43 +0800 | [diff] [blame] | 57 | source scripts/gen_build_combination.sh |
Kelvin Zhang | d91e47e | 2022-08-31 20:44:20 +0800 | [diff] [blame] | 58 | |
| 59 | nr=0 |
Kelvin Zhang | 14bca5e | 2021-12-15 19:19:35 +0800 | [diff] [blame] | 60 | while IFS= read -r LINE; do |
Kelvin Zhang | d91e47e | 2022-08-31 20:44:20 +0800 | [diff] [blame] | 61 | nr=$((nr+1)) |
Kelvin Zhang | c18bac6 | 2022-03-14 10:31:57 +0800 | [diff] [blame] | 62 | |
| 63 | check_project "$LINE" |
| 64 | [ "$?" -ne 0 ] && continue |
Kelvin Zhang | d91e47e | 2022-08-31 20:44:20 +0800 | [diff] [blame] | 65 | source scripts/env.sh $LINE >> $BUILD_LOG 2>&1 |
| 66 | [ "$?" -ne 0 ] && echo "Ignore unsupported combination! $LINE" && continue |
kelvin.zhang | 05852a7 | 2022-01-19 10:30:24 +0800 | [diff] [blame] | 67 | make distclean |
Kelvin Zhang | 461d2e1 | 2022-11-21 20:51:42 +0800 | [diff] [blame] | 68 | [ "$?" -ne 0 ] && echo "Failed to make distclean! $LINE" && return 2 |
xiaohu.huang | f0eed9c | 2024-07-16 17:26:45 +0800 | [diff] [blame] | 69 | if [ "$use_filter" -eq 1 ]; then |
| 70 | make config >> $BUILD_LOG 2>&1 |
| 71 | array=($LINE) |
| 72 | python3 scripts/projects_changed_filter.py "$OUTPUT_DIR" "$LINE" "$CHG_REPO" |
| 73 | is_need_compile=$? |
| 74 | if [ "$is_need_compile" -eq 1 ]; then |
| 75 | echo -n -e "$nr. Building $LINE ...\t" |
| 76 | make >> $BUILD_LOG 2>&1 |
| 77 | else |
| 78 | echo -n -e "$nr. $LINE is not changed, building none...\t" |
| 79 | : |
| 80 | fi |
| 81 | else |
| 82 | echo -n -e "$nr. Building $LINE ...\t" |
| 83 | make >> $BUILD_LOG 2>&1 |
| 84 | fi |
Kelvin Zhang | 461d2e1 | 2022-11-21 20:51:42 +0800 | [diff] [blame] | 85 | [ "$?" -ne 0 ] && echo "failed!" && cat $BUILD_LOG && touch $LAST_BUILD_FAILURE && echo -e "\nAborted with errors!\n" && return 3 |
Kelvin Zhang | b56b950 | 2022-09-01 15:18:43 +0800 | [diff] [blame] | 86 | grep -qr "warning: " $BUILD_LOG |
Kelvin Zhang | af92882 | 2022-11-22 17:39:26 +0800 | [diff] [blame] | 87 | [ "$?" -eq 0 ] && echo "with warnings!" && cat $BUILD_LOG && touch $LAST_BUILD_FAILURE && echo -e "\nAborted with warnings!\n" && return 1 |
| 88 | echo "OK" |
Kelvin Zhang | ff0a2b3 | 2022-11-08 14:17:14 +0800 | [diff] [blame] | 89 | rm -f $LAST_BUILD_FAILURE |
fugui.zhang | 89409e1 | 2024-07-03 14:10:05 +0800 | [diff] [blame] | 90 | if [[ "$SUBMIT_TYPE" == "daily" || "$SUBMIT_TYPE" == "patch" ]]; then |
Kelvin Zhang | b56b950 | 2022-09-01 15:18:43 +0800 | [diff] [blame] | 91 | if [[ "$ARCH" == "arm64" ]] && [[ "$PRODUCT" == "speaker" ]]; then |
Kelvin Zhang | d91e47e | 2022-08-31 20:44:20 +0800 | [diff] [blame] | 92 | make_image >> $BUILD_LOG 2>&1 |
| 93 | fi |
| 94 | publish_images >> $BUILD_LOG 2>&1 |
Kelvin Zhang | 461d2e1 | 2022-11-21 20:51:42 +0800 | [diff] [blame] | 95 | [ "$?" -ne 0 ] && echo "Failed to publish images!" && return 4 |
bin.chen | 439b934 | 2022-01-18 13:35:42 +0800 | [diff] [blame] | 96 | fi |
shijie.xiong | bc5d367 | 2022-04-01 17:52:16 +0800 | [diff] [blame] | 97 | done <"$BUILD_COMBINATION" |
| 98 | |
fugui.zhang | b2737ec | 2024-08-26 18:21:29 +0800 | [diff] [blame^] | 99 | [[ "$SUBMIT_TYPE" == "daily" || "$SUBMIT_TYPE" == "patch" ]] && post_publish_images >> $BUILD_LOG 2>&1 && show_download_url |
Kelvin Zhang | b56b950 | 2022-09-01 15:18:43 +0800 | [diff] [blame] | 100 | |
Kelvin Zhang | c37221a | 2022-09-07 15:18:12 +0800 | [diff] [blame] | 101 | echo -e "======== Done ========\n" | tee -a $BUILD_LOG |