scripts: improve scripts [1/1]

PD#SWPL-67525

Problem:
improve scripts

Solution:
improve scripts

Verify:
ad401_a113l

Signed-off-by: Kelvin Zhang <kelvin.zhang@amlogic.com>
Change-Id: Ic676cf6649d0dfc75c6b81908dd1a0a5683c929f
diff --git a/build_all.sh b/build_all.sh
index 9d523c1..b235cc1 100755
--- a/build_all.sh
+++ b/build_all.sh
@@ -5,7 +5,10 @@
 # SPDX-License-Identifier: MIT
 #
 
-[ -z "$BUILD_LOG" ] && BUILD_LOG="output/build.log"
+[ -z "$OUTPUT_DIR" ] && OUTPUT_DIR=$PWD/output
+[ ! -d $OUTPUT_DIR ] && mkdir -p $OUTPUT_DIR
+
+[ -z "$BUILD_LOG" ] && BUILD_LOG="$OUTPUT_DIR/build.log"
 
 # Clear build.log
 cat <<EOF > $BUILD_LOG
@@ -16,6 +19,7 @@
 if [[ "$SUBMIT_TYPE" == "daily" ]] || [[ "$SUBMIT_TYPE" == "release" ]]; then
 	echo "======== Building document ========" | tee -a $BUILD_LOG
 		make docs >> $BUILD_LOG 2>&1
+		LOCAL_DOC_PATH="$OUTPUT_DIR/docs/html"
 		if [ -d $LOCAL_DOC_PATH ]; then
 			pushd $LOCAL_DOC_PATH >/dev/null
 			publish_docoment
diff --git a/build_all_pkg.sh b/build_all_pkg.sh
index cac29b4..2f4863e 100755
--- a/build_all_pkg.sh
+++ b/build_all_pkg.sh
@@ -5,6 +5,11 @@
 # SPDX-License-Identifier: MIT
 #
 
+[ -z "$OUTPUT_DIR" ] && OUTPUT_DIR=$PWD/output
+[ ! -d $OUTPUT_DIR ] && mkdir -p $OUTPUT_DIR
+
+[ -z "$BUILD_LOG" ] && BUILD_LOG="$OUTPUT_DIR/build.log"
+
 # Clear build.log
 cat <<EOF > $BUILD_LOG
 EOF
diff --git a/cherry_pick.sh b/cherry_pick.sh
index 7e8f05f..5605c7f 100755
--- a/cherry_pick.sh
+++ b/cherry_pick.sh
@@ -44,7 +44,7 @@
 		echo -e "======== Manually applying Gerrit change $MANUAL_GERRIT_CHANGE_NUMBER on Project $GERRIT_PROJECT ========"
 	fi
 
-	keyline=`grep "name=\"$GERRIT_PROJECT\"" $CURRENT_FULL_MANIFEST`
+	keyline=`grep "name=\"$GERRIT_PROJECT\"" $CURRENT_MANIFEST`
 	pattern="path="
 	get_repo_path
 
@@ -64,7 +64,7 @@
 	i=1
 	for GERRIT_PROJECT in $GERRIT_PROJECTS; do
 		echo "-------- Applying patch $i on Project $GERRIT_PROJECT --------"
-		keyline=`grep "name=\"$GERRIT_PROJECT\"" $CURRENT_FULL_MANIFEST`
+		keyline=`grep "name=\"$GERRIT_PROJECT\"" $CURRENT_MANIFEST`
 		pattern="path="
 		get_repo_path
 
@@ -93,7 +93,7 @@
 		done
 
 		echo -e "\n-------- Manually applying patch on Project $GIT_PROJECT --------"
-		keyline=`grep "name=\"$GIT_PROJECT\"" $CURRENT_FULL_MANIFEST`
+		keyline=`grep "name=\"$GIT_PROJECT\"" $CURRENT_MANIFEST`
 		pattern="path="
 		get_repo_path
 
@@ -116,12 +116,15 @@
 	done <<< "$GIT_CHERRY_PICK"
 }
 
-[ -z "$CURRENT_FULL_MANIFEST" ] && CURRENT_FULL_MANIFEST="curr_full_manifest.xml"
-[ ! -f $CURRENT_FULL_MANIFEST ] && repo manifest -r -o $CURRENT_FULL_MANIFEST
+[ -z "$OUTPUT_DIR" ] && OUTPUT_DIR=$PWD/output
+[ ! -d $OUTPUT_DIR ] && mkdir -p $OUTPUT_DIR
+
+[ -z "$CURRENT_MANIFEST" ] && CURRENT_MANIFEST="$OUTPUT_DIR/curr_manifest.xml"
+[ ! -f $CURRENT_MANIFEST ] && repo manifest -r -o $CURRENT_MANIFEST
 
 [ -z "$GERRIT_PORT" ] && GERRIT_PORT="29418"
 GERRIT_SERVER="scgit.amlogic.com"
-GERRIT_QUERY_RESULT="changes.txt"
+GERRIT_QUERY_RESULT="$OUTPUT_DIR/changes.txt"
 
 apply_patch_by_change_number
 apply_patch_by_gerrit_topic
diff --git a/gen_jenkins_trigger.sh b/gen_jenkins_trigger.sh
index 4030324..b99032f 100755
--- a/gen_jenkins_trigger.sh
+++ b/gen_jenkins_trigger.sh
@@ -5,13 +5,11 @@
 # SPDX-License-Identifier: MIT
 #
 
-DIFF_MANIFEST="$OUTPUT_DIR/diff_manifest.xml"
-JENKINS_TRIGGER="$OUTPUT_DIR/jenkins_trigger.txt"
-
 gen_jenkins_trigger() {
 	if [ -s $CURRENT_MANIFEST ]; then
-		echo -e "======== Generate Jenkins Trigger ========\n"
+		echo "======== Generate Jenkins Trigger ========"
 
+		JENKINS_TRIGGER="$OUTPUT_DIR/jenkins_trigger.txt"
 		rm -f $JENKINS_TRIGGER
 
 		pattern="name="
@@ -28,14 +26,24 @@
 				echo "b=projects/amlogic-dev" >> $JENKINS_TRIGGER
 			fi
 		done < $CURRENT_MANIFEST
+
+		echo -e "======== Done ========\n"
 	fi
-	rm -f $LAST_MANIFEST $CURRENT_MANIFEST $DIFF_MANIFEST
 }
 
-if [ ! -f $LAST_MANIFEST ] && [ -f $CURRENT_MANIFEST ]; then
+[ -z "$OUTPUT_DIR" ] && OUTPUT_DIR=$PWD/output
+[ ! -d $OUTPUT_DIR ] && mkdir -p $OUTPUT_DIR
+
+[ -z "$CURRENT_MANIFEST" ] && CURRENT_MANIFEST="$OUTPUT_DIR/curr_manifest.xml"
+[ ! -f $CURRENT_MANIFEST ] && repo manifest -r -o $CURRENT_MANIFEST
+
+[ -z "$LAST_MANIFEST" ] && LAST_MANIFEST="$OUTPUT_DIR/last_manifest.xml"
+
+[ -z "$DIFF_MANIFEST" ] && DIFF_MANIFEST="$OUTPUT_DIR/diff_manifest.xml"
+
+if [ ! -f $LAST_MANIFEST ]; then
 	gen_jenkins_trigger
-fi
-if [ -f $LAST_MANIFEST ] && [ -f $CURRENT_MANIFEST ]; then
+else
 	comm -3 <(sort $LAST_MANIFEST) <(sort $CURRENT_MANIFEST) > $DIFF_MANIFEST
 	[ -s $DIFF_MANIFEST ] && gen_jenkins_trigger
 fi
diff --git a/jenkins_verify.sh b/jenkins_verify.sh
index 652e8a4..72fd625 100755
--- a/jenkins_verify.sh
+++ b/jenkins_verify.sh
@@ -30,12 +30,9 @@
 WORK_DIR=$BUILDCHECK_BASE_PATH/$PROJECT_NAME/$BRANCH
 OUTPUT_DIR=$WORK_DIR/output
 
-LAST_FULL_MANIFEST="$OUTPUT_DIR/last_full_manifest.xml"
-CURRENT_FULL_MANIFEST="$OUTPUT_DIR/curr_full_manifest.xml"
-DIFF_FULL_MANIFEST="$OUTPUT_DIR/diff_full_manifest.xml"
 LAST_MANIFEST="$OUTPUT_DIR/last_manifest.xml"
 CURRENT_MANIFEST="$OUTPUT_DIR/curr_manifest.xml"
-BUILD_LOG="$OUTPUT_DIR/build.log"
+DIFF_MANIFEST="$OUTPUT_DIR/diff_manifest.xml"
 
 if [ -n "$EXCLUDE_REPOS" ]; then
 	echo "Exclude repos:"
@@ -63,8 +60,7 @@
 	else
 		repo forall -c git reset -q --hard origin/$BRANCH_NAME
 	fi
-	repo manifest -r -o $LAST_FULL_MANIFEST
-	repo manifest -o $LAST_MANIFEST
+	repo manifest -r -o $LAST_MANIFEST
 fi
 
 repo sync -cq -j8 --prune
@@ -74,14 +70,13 @@
 else
 	repo forall -c git reset -q --hard origin/$BRANCH_NAME
 fi
-repo manifest -r -o $CURRENT_FULL_MANIFEST
-repo manifest -o $CURRENT_MANIFEST
+repo manifest -r -o $CURRENT_MANIFEST
 echo -e "======== Done ========\n"
 
-if [ -f $LAST_FULL_MANIFEST ] && [ -f $CURRENT_FULL_MANIFEST ]; then
-	comm -23 <(sort $LAST_FULL_MANIFEST) <(sort $CURRENT_FULL_MANIFEST) > $DIFF_FULL_MANIFEST
+if [ -f $LAST_MANIFEST ] && [ -f $CURRENT_MANIFEST ]; then
+	comm -23 <(sort $LAST_MANIFEST) <(sort $CURRENT_MANIFEST) > $DIFF_MANIFEST
 
-	if [ -s $DIFF_FULL_MANIFEST ]; then
+	if [ -s $DIFF_MANIFEST ]; then
 		echo "======== Recent Changes ========"
 
 		while IFS= read -r line
@@ -100,20 +95,19 @@
 				git log $repo_version..HEAD
 				popd > /dev/null
 			fi
-		done < $DIFF_FULL_MANIFEST
+		done < $DIFF_MANIFEST
 		echo -e "================\n"
 	else
 		echo -e "======== Nothing changed since last build ========\n"
 	fi
-	rm -f $DIFF_FULL_MANIFEST
 fi
 
-# Generate Jenkins trigger
-source gen_jenkins_trigger.sh
-
 # Cherry pick patches
 source scripts/cherry_pick.sh
 
+# Generate Jenkins trigger
+[ "$SUBMIT_TYPE" = "release" ] && source gen_jenkins_trigger.sh
+
 if [[ "$MANIFEST_BRANCH" == "$BRANCH_NAME" ]]; then
 	source scripts/build_all_pkg.sh
 else
diff --git a/publish.sh b/publish.sh
index 196bd32..7bc21fa 100755
--- a/publish.sh
+++ b/publish.sh
@@ -5,11 +5,10 @@
 # SPDX-License-Identifier: MIT
 #
 
-LOCAL_DOC_PATH="$PWD/output/docs/html"
-REMOTE_DOC_PATH="ftp://platform:platform@10.68.11.163:2222/Documents/Ecosystem/RTOS/rtos-sdk/"
-
 # Build and upload document
 publish_docoment() {
+	REMOTE_DOC_PATH="ftp://platform:platform@10.68.11.163:2222/Documents/Ecosystem/RTOS/rtos-sdk/"
+
 	find -type f | while read filename; do
 		curl -s --ftp-create-dirs -T $filename $REMOTE_DOC_PATH/$filename
 		if [ $? -ne 0 ]; then
@@ -18,8 +17,9 @@
 	done
 }
 
-LOCAL_OUTPUT_PATH=output
-LOCAL_PACKAGES_PATH=$LOCAL_OUTPUT_PATH/packages
+[ -z "$OUTPUT_DIR" ] && OUTPUT_DIR=$PWD/output
+LOCAL_OUTPUT_PATH=$OUTPUT_DIR
+LOCAL_IMAGE_PATH=$LOCAL_OUTPUT_PATH/$ARCH-$BOARD-$PRODUCT
 
 BUILD_DATE=$(date +%F)
 LATEST_REMOTE_PATH=/data/shanghai/image/RTOS/latest
@@ -31,11 +31,10 @@
 FIRMWARE_SERVER=firmware.amlogic.com
 
 make_image() {
-	mkimage -A $ARCH -O u-boot -T standalone -C none -a 0x1000 -e 0x1000 -n rtos -d output/$ARCH-$BOARD-$PRODUCT/images/freertos-signed.bin output/$ARCH-$BOARD-$PRODUCT/images/rtos-uImage
+	mkimage -A $ARCH -O u-boot -T standalone -C none -a 0x1000 -e 0x1000 -n rtos -d $LOCAL_IMAGE_PATH/images/freertos-signed.bin $LOCAL_IMAGE_PATH/images/rtos-uImage
 }
 
 publish_images() {
-	LOCAL_IMAGE_PATH=$LOCAL_OUTPUT_PATH/$ARCH-$BOARD-$PRODUCT
 	REMOTE_IMAGE_PATH=$REMOTE_IMAGES_PATH/$ARCH-$BOARD-$PRODUCT
 
 	if [ -d $LOCAL_IMAGE_PATH ]; then
@@ -75,7 +74,7 @@
 }
 
 publish_packages() {
-	LOCAL_PACKAGE_PATH=$LOCAL_PACKAGES_PATH/$CURRENT_PRODUCTS_DIR_NAME
+	LOCAL_PACKAGE_PATH=$LOCAL_OUTPUT_PATH/packages/$CURRENT_PRODUCTS_DIR_NAME
 	REMOTE_PACKAGE_PATH=$REMOTE_PACKAGES_PATH/$CURRENT_PRODUCTS_DIR_NAME
 
 	if [ -d $LOCAL_PACKAGE_PATH ]; then