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