mirror of
https://github.com/tencentmusic/supersonic.git
synced 2025-12-10 11:07:06 +00:00
94 lines
2.7 KiB
Bash
Executable File
94 lines
2.7 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
sbinDir=$(cd "$(dirname "$0")"; pwd)
|
|
chmod +x $sbinDir/supersonic-common.sh
|
|
source $sbinDir/supersonic-common.sh
|
|
cd $projectDir
|
|
|
|
MVN_VERSION=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout | grep -v '^\[' | sed -n '/^[0-9]/p')
|
|
if [ -z "$MVN_VERSION" ]; then
|
|
echo "Failed to retrieve Maven project version."
|
|
exit 1
|
|
fi
|
|
echo "Maven project version: $MVN_VERSION"
|
|
|
|
cd $baseDir
|
|
service=$1
|
|
if [ -z "$service" ]; then
|
|
service=${STANDALONE_SERVICE}
|
|
fi
|
|
|
|
function buildJavaService {
|
|
model_name=$1
|
|
echo "starting building supersonic-${model_name} service"
|
|
mvn -f $projectDir clean package -DskipTests -Dspotless.skip=true
|
|
if [ $? -ne 0 ]; then
|
|
echo "Failed to build backend Java modules."
|
|
exit 1
|
|
fi
|
|
cp $projectDir/launchers/${model_name}/target/*.tar.gz ${buildDir}/
|
|
echo "finished building supersonic-${model_name} service"
|
|
}
|
|
|
|
function buildWebapp {
|
|
echo "starting building supersonic webapp"
|
|
chmod +x $projectDir/webapp/start-fe-prod.sh
|
|
cd $projectDir/webapp
|
|
sh ./start-fe-prod.sh
|
|
# check build result
|
|
if [ $? -ne 0 ]; then
|
|
echo "Failed to build frontend webapp."
|
|
exit 1
|
|
fi
|
|
cp -fr ./supersonic-webapp.tar.gz ${buildDir}/
|
|
# check build result
|
|
if [ $? -ne 0 ]; then
|
|
echo "Failed to get supersonic webapp package."
|
|
exit 1
|
|
fi
|
|
echo "finished building supersonic webapp"
|
|
}
|
|
|
|
function packageRelease {
|
|
model_name=$1
|
|
release_dir=supersonic-${model_name}-${MVN_VERSION}
|
|
service_name=launchers-${model_name}-${MVN_VERSION}
|
|
echo "starting packaging supersonic release"
|
|
cd $buildDir
|
|
[ -d "$release_dir" ] && rm -rf "$release_dir"
|
|
[ -f "$release_dir.zip" ] && rm -f "$release_dir.zip"
|
|
mkdir $release_dir
|
|
# package webapp
|
|
tar xvf supersonic-webapp.tar.gz
|
|
mv supersonic-webapp webapp
|
|
# check webapp build result
|
|
if [ $? -ne 0 ]; then
|
|
echo "Failed to get supersonic webapp package."
|
|
exit 1
|
|
fi
|
|
json='{"env": "''"}'
|
|
echo $json > webapp/supersonic.config.json
|
|
mv webapp $release_dir/
|
|
# package java service
|
|
tar xvf $service_name-bin.tar.gz
|
|
mv $service_name/* $release_dir/
|
|
# generate zip file
|
|
zip -r $release_dir.zip $release_dir
|
|
# delete intermediate files
|
|
rm supersonic-webapp.tar.gz $service_name-bin.tar.gz
|
|
rm -rf webapp $service_name $release_dir
|
|
echo "finished packaging supersonic release"
|
|
}
|
|
|
|
#1. build backend services
|
|
if [ "$service" == "webapp" ]; then
|
|
buildWebapp
|
|
target_path=$projectDir/launchers/$STANDALONE_SERVICE/target/classes
|
|
tar xvf $projectDir/webapp/supersonic-webapp.tar.gz -C $target_path
|
|
rm -rf $target_path/webapp
|
|
mv $target_path/supersonic-webapp $target_path/webapp
|
|
else
|
|
buildJavaService $service
|
|
buildWebapp
|
|
packageRelease $service
|
|
fi |