scripts: publish.sh: Reorganize the dailybuild dir structure on firmware server [1/1]
PD#SWPL-67525
Problem:
Reorganize the dailybuild dir structure on firmware server
Solution:
Reorganize the dailybuild dir structure on firmware server
Verify:
ad401_a113l
Change-Id: I4df7d33618fe1375fd09670d30d4f0b5f0b49e9b
Signed-off-by: Kelvin Zhang <kelvin.zhang@amlogic.com>
diff --git a/build_all.sh b/build_all.sh
index 23a030d..67dbc0a 100755
--- a/build_all.sh
+++ b/build_all.sh
@@ -96,6 +96,6 @@
fi
done <"$BUILD_COMBINATION"
-[[ "$SUBMIT_TYPE" == "daily" ]] && post_publish_images >> $BUILD_LOG 2>&1
+[[ "$SUBMIT_TYPE" == "daily" ]] && post_publish_images >> $BUILD_LOG 2>&1 && show_download_url
echo -e "======== Done ========\n" | tee -a $BUILD_LOG
diff --git a/publish.sh b/publish.sh
index fecb628..c4246be 100755
--- a/publish.sh
+++ b/publish.sh
@@ -18,24 +18,28 @@
}
[ -z "$OUTPUT_DIR" ] && OUTPUT_DIR=$PWD/output
-LOCAL_OUTPUT_PATH=$OUTPUT_DIR
+LOCAL_PATH=$OUTPUT_DIR
BUILD_DATE=$(date +%F)
-LATEST_REMOTE_PATH=/data/shanghai/image/RTOS/latest
-REMOTE_PATH="$([ "$SUBMIT_TYPE" == "patch" ] && echo "/data/shanghai/image/RTOS/patchbuild" || echo "/data/shanghai/image/RTOS/$BUILD_DATE")"
-REMOTE_IMAGES_PATH=$REMOTE_PATH/images
-REMOTE_PACKAGES_PATH=$REMOTE_PATH/packages
+REMOTE_BASE=/data/shanghai/image/RTOS
+if [[ "$SUBMIT_TYPE" == "daily" || "$SUBMIT_TYPE" == "release" ]]; then
+ REMOTE_PATH=$REMOTE_BASE/$SUBMIT_TYPE/$BUILD_DATE
+else
+ REMOTE_PATH=$REMOTE_BASE/$SUBMIT_TYPE
+fi
+LATEST_PATH=$REMOTE_BASE/$SUBMIT_TYPE/latest
FIRMWARE_ACCOUNT=autobuild
FIRMWARE_SERVER=firmware.amlogic.com
make_image() {
+ LOCAL_IMAGE_PATH=$LOCAL_PATH/$ARCH-$BOARD-$PRODUCT
mkimage -A $ARCH -O u-boot -T standalone -C none -a 0x10000 -e 0x10000 -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
+ LOCAL_IMAGE_PATH=$LOCAL_PATH/$ARCH-$BOARD-$PRODUCT
+ REMOTE_IMAGE_PATH=$REMOTE_PATH/$ARCH-$BOARD-$PRODUCT
echo "publish to $REMOTE_IMAGE_PATH"
if [ -d $LOCAL_IMAGE_PATH ]; then
ssh -n $FIRMWARE_ACCOUNT@$FIRMWARE_SERVER "mkdir -p $REMOTE_IMAGE_PATH"
@@ -47,8 +51,6 @@
echo "Remote image path: $REMOTE_IMAGE_PATH"
fi
pushd $LOCAL_IMAGE_PATH >/dev/null
- tar -cJf $KERNEL.tar.xz $KERNEL/$KERNEL.*
- scp $KERNEL.tar.xz $FIRMWARE_ACCOUNT@$FIRMWARE_SERVER:$REMOTE_IMAGE_PATH
scp images/* $FIRMWARE_ACCOUNT@$FIRMWARE_SERVER:$REMOTE_IMAGE_PATH
popd >/dev/null
echo "Images publish done."
@@ -58,29 +60,29 @@
}
post_publish_images() {
- ssh -n $FIRMWARE_ACCOUNT@$FIRMWARE_SERVER "mkdir -p $REMOTE_IMAGES_PATH"
+ ssh -n $FIRMWARE_ACCOUNT@$FIRMWARE_SERVER "mkdir -p $REMOTE_PATH"
if [ $? -ne 0 ]; then
- echo "Failed to create remote image path! $REMOTE_IMAGES_PATH"
+ echo "Failed to create remote image path! $REMOTE_PATH"
exit 1
else
- echo "Remote image path: $REMOTE_IMAGES_PATH"
+ echo "Remote image path: $REMOTE_PATH"
fi
- LOCAL_FILES="$LOCAL_OUTPUT_PATH/build.log"
+ LOCAL_FILES="$LOCAL_PATH/build.log"
[ -z "$MANIFEST" ] && MANIFEST="$OUTPUT_DIR/manifest.xml"
[ -f $MANIFEST ] && LOCAL_FILES+=" $MANIFEST"
[ -z "$JENKINS_TRIGGER" ] && JENKINS_TRIGGER="$OUTPUT_DIR/jenkins_trigger.txt"
[ -f $JENKINS_TRIGGER ] && LOCAL_FILES+=" $JENKINS_TRIGGER"
- scp $LOCAL_FILES $FIRMWARE_ACCOUNT@$FIRMWARE_SERVER:$REMOTE_IMAGES_PATH
+ scp $LOCAL_FILES $FIRMWARE_ACCOUNT@$FIRMWARE_SERVER:$REMOTE_PATH
- ssh -n $FIRMWARE_ACCOUNT@$FIRMWARE_SERVER "rm -f $LATEST_REMOTE_PATH"
- ssh -n $FIRMWARE_ACCOUNT@$FIRMWARE_SERVER "ln -s $REMOTE_PATH $LATEST_REMOTE_PATH"
+ ssh -n $FIRMWARE_ACCOUNT@$FIRMWARE_SERVER "rm -f $LATEST_PATH"
+ ssh -n $FIRMWARE_ACCOUNT@$FIRMWARE_SERVER "ln -s $REMOTE_PATH $LATEST_PATH"
echo "Post images publish done."
}
publish_packages() {
- LOCAL_PACKAGE_PATH=$LOCAL_OUTPUT_PATH/packages/$CURRENT_PRODUCTS_DIR_NAME
- REMOTE_PACKAGE_PATH=$REMOTE_PACKAGES_PATH/$CURRENT_PRODUCTS_DIR_NAME
+ LOCAL_PACKAGE_PATH=$LOCAL_PATH/packages/$CURRENT_PRODUCTS_DIR_NAME
+ REMOTE_PACKAGE_PATH=$REMOTE_PATH/$CURRENT_PRODUCTS_DIR_NAME
if [ -d $LOCAL_PACKAGE_PATH ]; then
ssh -n $FIRMWARE_ACCOUNT@$FIRMWARE_SERVER "mkdir -p $REMOTE_PACKAGE_PATH"
@@ -101,14 +103,20 @@
}
post_publish_packages() {
- ssh -n $FIRMWARE_ACCOUNT@$FIRMWARE_SERVER "mkdir -p $REMOTE_PACKAGES_PATH"
+ ssh -n $FIRMWARE_ACCOUNT@$FIRMWARE_SERVER "mkdir -p $REMOTE_PATH"
if [ $? -ne 0 ]; then
- echo "Failed to create remote package path! $REMOTE_PACKAGES_PATH"
+ echo "Failed to create remote package path! $REMOTE_PATH"
exit 1
else
- echo "Remote package path: $REMOTE_PACKAGES_PATH"
+ echo "Remote package path: $REMOTE_PATH"
fi
- LOCAL_FILES="$LOCAL_OUTPUT_PATH/build.log $LOCAL_OUTPUT_PATH/manifest.xml"
- scp $LOCAL_FILES $FIRMWARE_ACCOUNT@$FIRMWARE_SERVER:$REMOTE_PACKAGES_PATH
+ LOCAL_FILES="$LOCAL_PATH/build.log $LOCAL_PATH/manifest.xml"
+ scp $LOCAL_FILES $FIRMWARE_ACCOUNT@$FIRMWARE_SERVER:$REMOTE_PATH
echo "Post packages publish done."
}
+
+show_download_url() {
+ WEB_PATH=`echo ${LATEST_PATH#*data}`
+ DOWNLOAD_URL="http://$FIRMWARE_SERVER$WEB_PATH"
+ echo "<Download Address> $DOWNLOAD_URL"
+}