blob: 1a48fbfd86e94fb2f85c7f322841e6694bc40ec0 [file] [log] [blame]
Kelvin Zhang14bca5e2021-12-15 19:19:35 +08001#!/bin/bash
yang.li09520922022-01-12 15:51:51 +08002#
yang.liffa60e52022-01-11 14:38:56 +08003# Copyright (c) 2021-2022 Amlogic, Inc. All rights reserved.
yang.li09520922022-01-12 15:51:51 +08004#
yang.liffa60e52022-01-11 14:38:56 +08005# SPDX-License-Identifier: MIT
yang.li09520922022-01-12 15:51:51 +08006#
yang.liffa60e52022-01-11 14:38:56 +08007
Kelvin Zhang23075212022-02-11 18:26:18 +08008LOCAL_DOC_PATH="$PWD/output/docs/html"
Kelvin Zhang69dc9fb2022-02-18 16:44:04 +08009REMOTE_DOC_PATH="ftp://platform:platform@10.68.11.163:2222/Documents/Ecosystem/RTOS/rtos-sdk/"
Kelvin Zhang14bca5e2021-12-15 19:19:35 +080010
Kelvin Zhang09786122022-02-11 15:56:08 +080011# Build and upload document
shijie.xiongbc5d3672022-04-01 17:52:16 +080012update_docoment() {
13 find -type f | while read filename; do
Kelvin Zhang69dc9fb2022-02-18 16:44:04 +080014 curl -s --ftp-create-dirs -T $filename $REMOTE_DOC_PATH/$filename
Kelvin Zhang1fea9142022-02-11 18:19:56 +080015 if [ $? -ne 0 ]; then
shijie.xiongbc5d3672022-04-01 17:52:16 +080016 return 1
Kelvin Zhang1fea9142022-02-11 18:19:56 +080017 fi
18 done
19}
20
Kelvin Zhang09786122022-02-11 15:56:08 +080021if [[ "$SUBMIT_TYPE" == "daily" ]]; then
22 make docs
kelvin.zhang77dd5442022-02-14 10:26:15 +080023 if [ -d $LOCAL_DOC_PATH ]; then
shijie.xiongbc5d3672022-04-01 17:52:16 +080024 pushd $LOCAL_DOC_PATH >/dev/null
Kelvin Zhang23075212022-02-11 18:26:18 +080025 update_docoment
26 if [ $? -ne 0 ]; then
27 echo "Failed to update document"
28 else
29 echo "Document updated!"
30 fi
shijie.xiongbc5d3672022-04-01 17:52:16 +080031 popd >/dev/null
Kelvin Zhang1fea9142022-02-11 18:19:56 +080032 else
Kelvin Zhang23075212022-02-11 18:26:18 +080033 echo "$LOCAL_DOC_PATH not exist!"
Kelvin Zhang7f0d2e02022-02-14 10:16:35 +080034 fi
Kelvin Zhang09786122022-02-11 15:56:08 +080035fi
36
shijie.xiongbc5d3672022-04-01 17:52:16 +080037BUILD_DATE=$(date +%F)
38LOCAL_OUTPUT_PATH=output
39FIRMWARE_ACCOUNT=autobuild
Kelvin Zhang69dc9fb2022-02-18 16:44:04 +080040FIRMWARE_SERVER=firmware.amlogic.com
41
shijie.xiongbc5d3672022-04-01 17:52:16 +080042publish_image() {
43 LOCAL_IMAGE_PATH=$LOCAL_OUTPUT_PATH/$ARCH-$BOARD-$PRODUCT
44 REMOTE_IMAGE_PATH=/data/shanghai/image/RTOS/$BUILD_DATE/$ARCH-$BOARD-$PRODUCT
Kelvin Zhang69dc9fb2022-02-18 16:44:04 +080045
shijie.xiongbc5d3672022-04-01 17:52:16 +080046 if [ -d $LOCAL_IMAGE_PATH ]; then
47 ssh -n $FIRMWARE_ACCOUNT@$FIRMWARE_SERVER "mkdir -p $REMOTE_IMAGE_PATH"
48 if [ $? -ne 0 ]; then
49 echo "Failed to create remote image path! $REMOTE_IMAGE_PATH"
Kelvin Zhang69dc9fb2022-02-18 16:44:04 +080050 exit 1
51 else
shijie.xiongbc5d3672022-04-01 17:52:16 +080052 echo "Remote image path: $REMOTE_IMAGE_PATH"
Kelvin Zhang69dc9fb2022-02-18 16:44:04 +080053 fi
shijie.xiongbc5d3672022-04-01 17:52:16 +080054 scp build.log $FIRMWARE_ACCOUNT@$FIRMWARE_SERVER:$REMOTE_IMAGE_PATH
55 pushd $LOCAL_IMAGE_PATH >/dev/null
Kelvin Zhang69dc9fb2022-02-18 16:44:04 +080056 tar -cJf $KERNEL.tar.xz $KERNEL/$KERNEL.*
57 LOCAL_FILES="manifest.xml $KERNEL.tar.xz"
shijie.xiongbc5d3672022-04-01 17:52:16 +080058 scp $LOCAL_FILES $FIRMWARE_ACCOUNT@$FIRMWARE_SERVER:$REMOTE_IMAGE_PATH
59 scp -r images $FIRMWARE_ACCOUNT@$FIRMWARE_SERVER:$REMOTE_IMAGE_PATH
60 popd >/dev/null
61 echo "Publish images success."
Kelvin Zhang69dc9fb2022-02-18 16:44:04 +080062 else
shijie.xiongbc5d3672022-04-01 17:52:16 +080063 echo "No local image path! $LOCAL_IMAGE_PATH"
64 fi
65}
66
67publish_package() {
68 LOCAL_PACKAGE_PATH=$LOCAL_OUTPUT_PATH/package/images
69 REMOTE_PACKAGE_PATH=/data/shanghai/image/RTOS/$BUILD_DATE/package
70
71 if [ -d $LOCAL_PACKAGE_PATH ]; then
72 ssh -n $FIRMWARE_ACCOUNT@$FIRMWARE_SERVER "mkdir -p $REMOTE_PACKAGE_PATH"
73 if [ $? -ne 0 ]; then
74 echo "Failed to create remote package path! $REMOTE_PACKAGE_PATH"
75 exit 1
76 else
77 echo "Remote package path: $REMOTE_PACKAGE_PATH"
78 fi
79 pushd $LOCAL_PACKAGE_PATH >/dev/null
80 scp -r . $FIRMWARE_ACCOUNT@$FIRMWARE_SERVER:$REMOTE_PACKAGE_PATH
81 popd >/dev/null
82 echo "Publish packages success."
83 else
84 echo "No local package path! $LOCAL_PACKAGE_PATH"
Kelvin Zhang69dc9fb2022-02-18 16:44:04 +080085 fi
86}
87
kelvin.zhang2219b412022-03-04 16:44:41 +080088# Manually cherry pick patches
89./scripts/cherry_pick.sh
kelvin.zhang5fd25982022-03-04 09:43:01 +080090
Kelvin Zhangc18bac62022-03-14 10:31:57 +080091source scripts/gen_build_combination.sh
Kelvin Zhang69dc9fb2022-02-18 16:44:04 +080092
Kelvin Zhang14bca5e2021-12-15 19:19:35 +080093i=0
94while IFS= read -r LINE; do
95 [[ "$i" -ne 0 ]] && echo ""
shijie.xiongbc5d3672022-04-01 17:52:16 +080096 i=$((i + 1))
Kelvin Zhangc18bac62022-03-14 10:31:57 +080097
98 check_project "$LINE"
99 [ "$?" -ne 0 ] && continue
Kelvin Zhang14bca5e2021-12-15 19:19:35 +0800100 source scripts/env.sh $LINE
kelvin.zhangb7217852022-03-10 11:18:18 +0800101 [ "$?" -ne 0 ] && echo "Ignore unsupported combination!" && continue
kelvin.zhang05852a72022-01-19 10:30:24 +0800102 make distclean
Xiaohu.Huangb6ad9762022-02-11 17:49:09 +0800103 [ "$?" -ne 0 ] && echo "Failed to make distclean!" && exit 2
bin.chene9875112022-01-18 15:00:50 +0800104 make
Xiaohu.Huangb6ad9762022-02-11 17:49:09 +0800105 [ "$?" -ne 0 ] && echo "Failed to make!" && exit 3
Xiaohu.Huang7dac8722022-01-18 16:21:29 +0800106 if [[ "$SUBMIT_TYPE" == "daily" ]]; then
shijie.xiongbc5d3672022-04-01 17:52:16 +0800107 publish_image
Xiaohu.Huangb6ad9762022-02-11 17:49:09 +0800108 [ "$?" -ne 0 ] && echo "Failed to source scripts/scp.sh!" && exit 4
bin.chen439b9342022-01-18 13:35:42 +0800109 fi
shijie.xiongbc5d3672022-04-01 17:52:16 +0800110done <"$BUILD_COMBINATION"
111
112source scripts/gen_package_combination.sh
113
114index=0
115while IFS= read -r LINE; do
116 source scripts/pkg_env.sh $index gen_all
117 [ "$?" -ne 0 ] && echo "Ignore unsupported combination!" && continue
118 make package
119 [ "$?" -ne 0 ] && echo "Failed to make!" && exit 3
120 if [[ "$SUBMIT_TYPE" == "release" ]]; then
121 publish_package
122 [ "$?" -ne 0 ] && echo "Failed to source scripts/scp.sh!" && exit 4
123 fi
124 index=$((index + 1))
125done <"$PACKAGE_COMBINATION"
kelvin.zhangf59bf9a2022-02-16 10:41:47 +0800126
127echo "Build completed!"