115 lines
3.3 KiB
Bash
Executable File
115 lines
3.3 KiB
Bash
Executable File
#!/bin/bash
|
|
#
|
|
# Copyright (c) 2021-2022 Amlogic, Inc. All rights reserved.
|
|
#
|
|
# SPDX-License-Identifier: MIT
|
|
#
|
|
|
|
# Build and upload document
|
|
publish_docoment() {
|
|
REMOTE_DOC_PATH="ftp://rtos:[email protected]:2121/rtos-sdk/"
|
|
|
|
find -type f | while read filename; do
|
|
curl -s --ftp-create-dirs -T $filename $REMOTE_DOC_PATH/$filename
|
|
if [ $? -ne 0 ]; then
|
|
return 1
|
|
fi
|
|
done
|
|
}
|
|
|
|
[ -z "$OUTPUT_DIR" ] && OUTPUT_DIR=$PWD/output
|
|
LOCAL_PATH=$OUTPUT_DIR
|
|
|
|
BUILD_DATE=$(date +%F)
|
|
REMOTE_BASE=/data/shanghai/image/RTOS
|
|
if [[ "$SUBMIT_TYPE" == "daily" || "$SUBMIT_TYPE" == "release" ]]; then
|
|
REMOTE_PATH=$REMOTE_BASE/$SUBMIT_TYPE/$BUILD_DATE/$PROJECT_NAME
|
|
elif [[ "$SUBMIT_TYPE" == "patch" ]]; then
|
|
REMOTE_PATH=$REMOTE_BASE/$SUBMIT_TYPE/$MANUAL_GERRIT_TOPIC/$PROJECT_NAME
|
|
fi
|
|
|
|
FIRMWARE_ACCOUNT=autobuild
|
|
FIRMWARE_SERVER=firmware.amlogic.com
|
|
|
|
publish_images() {
|
|
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"
|
|
|
|
if [ $? -ne 0 ]; then
|
|
echo "Failed to create remote image path! $REMOTE_IMAGE_PATH"
|
|
exit 1
|
|
else
|
|
echo "Remote image path: $REMOTE_IMAGE_PATH"
|
|
fi
|
|
pushd $LOCAL_IMAGE_PATH >/dev/null
|
|
scp images/* $FIRMWARE_ACCOUNT@$FIRMWARE_SERVER:$REMOTE_IMAGE_PATH
|
|
popd >/dev/null
|
|
echo "Images publish done."
|
|
else
|
|
echo "No local image path! $LOCAL_IMAGE_PATH"
|
|
fi
|
|
}
|
|
|
|
post_publish_images() {
|
|
ssh -n $FIRMWARE_ACCOUNT@$FIRMWARE_SERVER "mkdir -p $REMOTE_PATH"
|
|
if [ $? -ne 0 ]; then
|
|
echo "Failed to create remote image path! $REMOTE_PATH"
|
|
exit 1
|
|
else
|
|
echo "Remote image path: $REMOTE_PATH"
|
|
fi
|
|
|
|
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 ] && [[ "$SUBMIT_TYPE" == "release" ]] && LOCAL_FILES+=" $JENKINS_TRIGGER"
|
|
scp $LOCAL_FILES $FIRMWARE_ACCOUNT@$FIRMWARE_SERVER:$REMOTE_PATH
|
|
|
|
echo "Post images publish done."
|
|
}
|
|
|
|
publish_packages() {
|
|
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"
|
|
if [ $? -ne 0 ]; then
|
|
echo "Failed to create remote package path! $REMOTE_PACKAGE_PATH"
|
|
exit 1
|
|
else
|
|
echo "Remote package path: $REMOTE_PACKAGE_PATH"
|
|
fi
|
|
pushd $LOCAL_PACKAGE_PATH >/dev/null
|
|
|
|
scp -r . $FIRMWARE_ACCOUNT@$FIRMWARE_SERVER:$REMOTE_PACKAGE_PATH
|
|
popd >/dev/null
|
|
echo "Packages publish done."
|
|
else
|
|
echo "No local package path! $LOCAL_PACKAGE_PATH"
|
|
fi
|
|
}
|
|
|
|
post_publish_packages() {
|
|
ssh -n $FIRMWARE_ACCOUNT@$FIRMWARE_SERVER "mkdir -p $REMOTE_PATH"
|
|
if [ $? -ne 0 ]; then
|
|
echo "Failed to create remote package path! $REMOTE_PATH"
|
|
exit 1
|
|
else
|
|
echo "Remote package path: $REMOTE_PATH"
|
|
fi
|
|
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 ${REMOTE_PATH#*data}`
|
|
DOWNLOAD_URL="http://$FIRMWARE_SERVER$WEB_PATH"
|
|
echo "<Download Address> $DOWNLOAD_URL"
|
|
}
|