yoqw/deploy
2024-10-07 12:26:48 +08:00

116 lines
2.6 KiB
Bash
Executable File

#!/bin/bash
# get real path of softlink
get_real_path() {
local f="$1"
while [ -h "$f" ]; do
ls=`ls -ld "$f"`
link=`expr "$ls" : '.*-> \(.*\)$'`
if expr "$link" : '/.*' > /dev/null; then
f="$link"
else
f=`dirname "$f"`/"$link"
fi
done
echo "$f"
}
prg_path=$(get_real_path "$0")
echo "Script Path [$prg_path]"
pushd $(dirname "$prg_path") > /dev/null
PROJECT_HOME=$(pwd)
echo "Project Home [$PROJECT_HOME]"
# if [[ ! -z "$1" ]]; then
# APP=${1%/}
# else
# echo "App required."
# exit 1
# fi
if [[ "$1" =~ cms/? ]]; then
MODULE="cms/web"
APP='cms-stage'
if [[ "$2" = 'yhp' ]]; then
SERVER=yunhuipai@yhp-01
fi
elif [[ "$1" =~ mpapi/? ]]; then
MODULE='mpapi'
APP='mpapi-stage'
if [[ "$2" = 'yhp' ]]; then
SERVER=yunhuipai@yhp-01
fi
elif [[ "$1" =~ operation/? ]]; then
MODULE='operation/web'
APP='operation'
elif [[ "$1" =~ one/? ]]; then
MODULE="yunhuipai/one/web"
APP='one'
SERVER=yunhuipai@yhp-00
elif [[ "$1" =~ portal/? ]]; then
MODULE='yunhuipai/portal/web'
APP='portal'
SERVER=yunhuipai@yhp-00
elif [[ "$1" =~ h5/? ]]; then
MODULE='yunhuipai/portal/h5'
APP='h5'
else
echo 'Arg module required.'
exit 1
fi
if [[ "$2" = 'zj' ]]; then
SERVICE_HOME=/data/program/${APP}
SERVER=apache@huitong
MVN_PROFILE=cmp
elif [[ "$2" = 'yhp' ]]; then
SERVICE_HOME=/opt/application/${APP}
MVN_PROFILE=yhp
elif [[ "$2" = 'prod' ]]; then
SERVER=xiandou@cy-crm
SERVICE_HOME=/opt/application/${APP}
MVN_PROFILE=default
else
echo "Profile required."
exit 1
fi
mvn -P $MVN_PROFILE clean package -o -pl $MODULE -am -DskipTests -T 4C
if [ $? -ne 0 ]; then
echo 'Maven build failed.'
exit 1
fi
TARGET_DIR=$MODULE/target
echo "Target dir [$TARGET_DIR]"
JAR=$(find "$TARGET_DIR" -maxdepth 1 -type f -name "*.jar" | grep -v "sources.jar$")
if [ -z "$JAR" ]; then
echo "Build target JAR is blank, exit."
exit 1
fi
echo "Target JAR [$JAR] found"
echo "Service Home [$SERVICE_HOME], Server [$SERVER]"
echo "$SERVER [ -f $SERVICE_HOME/lib/main.jar ] && mv $SERVICE_HOME/lib/main.jar $SERVICE_HOME/lib/main_prev.jar"
ssh "$SERVER" "[ -f $SERVICE_HOME/lib/main.jar ] && mv $SERVICE_HOME/lib/main.jar $SERVICE_HOME/lib/main_prev.jar"
echo "$JAR $SERVER:$SERVICE_HOME/lib/main.jar"
scp "$JAR" "$SERVER:$SERVICE_HOME/lib/main.jar"
echo "$SERVER $SERVICE_HOME/bin/stop.sh"
ssh "$SERVER" "$SERVICE_HOME/bin/stop.sh"
echo "$SERVER $SERVICE_HOME/bin/start.sh"
ssh "$SERVER" "$SERVICE_HOME/bin/start.sh"
popd > /dev/null