build_all.sh: integrate firmware publishing [1/1]

PD#SWPL-67525

Problem:
integrate firmware publishing

Solution:
integrate firmware publishing

Verify:
ad401_a113l

Signed-off-by: Kelvin Zhang <kelvin.zhang@amlogic.com>
Change-Id: If1e77b65fb03d2195d7e97e5f0313d72989fc5ba
diff --git a/build_all.sh b/build_all.sh
index 7409976..0e678b4 100755
--- a/build_all.sh
+++ b/build_all.sh
@@ -7,16 +7,15 @@
 
 # usage:./scripts/build_all.sh at rtos sdk root dir
 
-BUILD_COMBINATION="$PWD/scripts/build_combination.txt"
 LOCAL_DOC_PATH="$PWD/output/docs/html"
-SERVER_DOC_PATH="ftp://platform:platform@10.68.11.163:2222/Documents/Ecosystem/RTOS/rtos-sdk/"
+REMOTE_DOC_PATH="ftp://platform:platform@10.68.11.163:2222/Documents/Ecosystem/RTOS/rtos-sdk/"
 
 # Build and upload document
 update_docoment()
 {
 	find -type f | while read filename
 	do
-		curl -s --ftp-create-dirs -T $filename $SERVER_DOC_PATH/$filename
+		curl -s --ftp-create-dirs -T $filename $REMOTE_DOC_PATH/$filename
 		if [ $? -ne 0 ]; then
 			return 1;
 		fi
@@ -26,20 +25,54 @@
 if [[ "$SUBMIT_TYPE" == "daily" ]]; then
 	make docs
 	if [ -d $LOCAL_DOC_PATH ]; then
-		cd $LOCAL_DOC_PATH
+		pushd $LOCAL_DOC_PATH > /dev/null
 		update_docoment
 		if [ $? -ne 0 ]; then
 			echo "Failed to update document"
 		else
 			echo "Document updated!"
 		fi
+		popd > /dev/null
 	else
 		echo "$LOCAL_DOC_PATH not exist!"
 	fi
-	cd -
 fi
 
+BUILD_DATE=`date +%F`
+FIRMWARE_SERVER=firmware.amlogic.com
+
+publish_firmware()
+{
+	LOCAL_FIRMWARE_PATH=output/$BOARD-$PRODUCT
+	REMOTE_FIRMWARE_PATH=/data/shanghai/image/RTOS/$BUILD_DATE/$BOARD-$PRODUCT
+
+	if [ -d $LOCAL_FIRMWARE_PATH ]
+	then
+
+		ssh -n autobuild@$FIRMWARE_SERVER "mkdir -p $REMOTE_FIRMWARE_PATH"
+		if [ $? -ne 0 ]
+		then
+			echo "Failed to create remote path! $REMOTE_FIRMWARE_PATH"
+			exit 1
+		else
+			echo "Remote path: $REMOTE_FIRMWARE_PATH"
+		fi
+		scp build.log autobuild@$FIRMWARE_SERVER:$REMOTE_FIRMWARE_PATH
+		pushd $LOCAL_FIRMWARE_PATH > /dev/null
+		tar -cJf $KERNEL.tar.xz $KERNEL/$KERNEL.*
+		LOCAL_FILES="manifest.xml $KERNEL.tar.xz"
+		scp $LOCAL_FILES autobuild@$FIRMWARE_SERVER:$REMOTE_FIRMWARE_PATH
+		scp -r images autobuild@$FIRMWARE_SERVER:$REMOTE_FIRMWARE_PATH
+		popd > /dev/null
+		echo "Publish success."
+	else
+		echo "No local path! $LOCAL_FIRMWARE_PATH"
+	fi
+}
+
 # Build all projects
+BUILD_COMBINATION="$PWD/scripts/build_combination.txt"
+
 i=0
 while IFS= read -r LINE; do
 	[[ "$i" -ne 0 ]] && echo ""
@@ -51,7 +84,7 @@
 	make
 	[ "$?" -ne 0 ] && echo "Failed to make!" && exit 3
 	if [[ "$SUBMIT_TYPE" == "daily" ]]; then
-		scripts/scp.sh
+		publish_firmware
 		[ "$?" -ne 0 ] && echo "Failed to source scripts/scp.sh!" && exit 4
 	fi
 done < "$BUILD_COMBINATION"