Skip to content

Commit

Permalink
add auto deploy script
Browse files Browse the repository at this point in the history
  • Loading branch information
Pil0tXia committed Mar 14, 2024
1 parent 7e210a0 commit f8080a5
Showing 1 changed file with 67 additions and 0 deletions.
67 changes: 67 additions & 0 deletions deployment/auto-deploy-eventmesh-dashboard.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
#!/bin/bash

# Git repository path
REPO_PATH=~/service/eventmesh-dashboard

# SpringBoot process ID file path
PID_LOG=./eventmesh-dashboard-pid.log

# Automatic deployment log file path
AUTO_DEPLOY_LOG=./auto-deploy-eventmesh-dashboard.log

# Jar file path
JAR_FILE_PATH=~/service/eventmesh-dashboard/eventmesh-dashboard-console/target/eventmesh-dashboard-console-0.0.1-SNAPSHOT.jar

# Check if the pid.log file exists, if not, create an empty file
touch $PID_LOG

# Update the git repository
cd $REPO_PATH
git fetch origin dev
LOCAL=$(git rev-parse @)
REMOTE=$(git rev-parse origin/dev)

if [ $LOCAL != $REMOTE ]; then
# If the remote dev branch is newer than the local one, update the local dev branch code
git pull origin dev

# Log the event
echo "$(date +"%Y-%m-%d %H:%M:%S") - change detected." >> $AUTO_DEPLOY_LOG

# Terminate the old process
if [ -f $PID_LOG ]; then
PID=$(cat $PID_LOG)
if [ -n "$PID" ]; then
kill $PID
# Log the event
echo "$(date +"%Y-%m-%d %H:%M:%S") - kill running application." >> $AUTO_DEPLOY_LOG
fi
fi

# Compile and package the Jar file using Maven
mvn clean package

# Start the springboot application and record the process id to pid.log file, redirect console logs to eventmesh-dashboard-<current time>.log file
nohup java -jar $JAR_FILE_PATH > eventmesh-dashboard-$(date +"%Y-%m-%d-%H-%M-%S").log 2>&1 &
echo $! > $PID_LOG

# Log the event
echo "$(date +"%Y-%m-%d %H:%M:%S") - start new application." >> $AUTO_DEPLOY_LOG
else
# If there are no new changes in the remote dev branch

# Log the event
echo "$(date +"%Y-%m-%d %H:%M:%S") - no change detected." >> $AUTO_DEPLOY_LOG

if [ -f $PID_LOG ]; then
# If the pid.log file exists, no action is performed
echo "$(date +"%Y-%m-%d %H:%M:%S") - application running, no operation performed." >> $AUTO_DEPLOY_LOG
else
# If the pid.log file does not exist, start the springboot application and record the process id to pid.log file, redirect console logs to eventmesh-dashboard-<current time>.log file
nohup java -jar $JAR_FILE_PATH > eventmesh-dashboard-$(date +"%Y-%m-%d-%H-%M-%S").log 2>&1 &
echo $! > $PID_LOG

# Log the event
echo "$(date +"%Y-%m-%d %H:%M:%S") - no pid.log file, start application." >> $AUTO_DEPLOY_LOG
fi
fi

0 comments on commit f8080a5

Please sign in to comment.