blob: d2cce5304760bbc05739a83ba3c1a5c43f30eaf8 [file] [log] [blame]
#!/bin/bash
#
# Copyright (c) 2021-2022 Amlogic, Inc. All rights reserved.
#
# SPDX-License-Identifier: MIT
#
# usage:./scripts/build_all.sh at rtos sdk root dir
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
update_docoment()
{
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
}
if [[ "$SUBMIT_TYPE" == "daily" ]]; then
make docs
if [ -d $LOCAL_DOC_PATH ]; then
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
fi
BUILD_DATE=`date +%F`
FIRMWARE_SERVER=firmware.amlogic.com
publish_firmware()
{
LOCAL_FIRMWARE_PATH=output/$ARCH-$BOARD-$PRODUCT
REMOTE_FIRMWARE_PATH=/data/shanghai/image/RTOS/$BUILD_DATE/$ARCH-$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
}
# Manually cherry pick patches
./scripts/cherry_pick.sh
# Build all projects
BUILD_COMBINATION="$PWD/scripts/build_combination.txt"
i=0
while IFS= read -r LINE; do
[[ "$i" -ne 0 ]] && echo ""
i=$((i+1))
source scripts/env.sh $LINE
[ "$?" -ne 0 ] && echo "Failed to source scripts/env.sh!" && exit 1
make distclean
[ "$?" -ne 0 ] && echo "Failed to make distclean!" && exit 2
make
[ "$?" -ne 0 ] && echo "Failed to make!" && exit 3
if [[ "$SUBMIT_TYPE" == "daily" ]]; then
publish_firmware
[ "$?" -ne 0 ] && echo "Failed to source scripts/scp.sh!" && exit 4
fi
done < "$BUILD_COMBINATION"
echo "Build completed!"