서버
gradle - spring boot 배포 스크립트
탐훈
2025. 2. 16. 18:28
728x90
# 1.변수 선언
REPOSITORY=/home/ubuntu/app/step1
PROJECT_NAME=kiosk_baskin
# 2. 디렉토리 이동
cd $REPOSITORY/$PROJECT_NAME
# 3. 최신화
echo "> git pull "
git pull
# 4. 빌드
echo "> 프로젝트 Build 시작"
echo "> 프로젝트 clean"
gradle clean
echo "> 프로젝트 빌드"
gradle build -x test
echo "> 디렉토리 이동"
cd $REPOSITORY
# 5. 빌드파일 복사
echo ">Build 파일 복사"
cp $REPOSITORY/$PROJECT_NAME/build/libs/*.jar
# 6. 이미 서버 구동죽인지 확인
echo "> 현재 구동중인 pid 확인"
CURRENT_PID=$(pgrep -f ${PROJECT_NAME}.*.jar)
echo "현재 구동중인 pid : $CURRENT_PID"
# 7. -z "empty string check"
if [ -z "$CURRENT_PID" ]; then
echo "> 현재 구동중인 애플리케이션이 없어 종료하지 않습니다"
else
echo "> kill -15 $CURRENT_PID"
kill -15 $CURRENT_PID
sleep 5
fi
# 8. -t(sort) -r(reverse order),
# '|' 결과값을 다음커맨드에 넘겨준
# '-n'(line 개수)
# => 최신순으로 | jar 파일리스트 | 최신1개 뽑기
echo "> 새 애플리케이션 배포"
JAR_NAME=$(ls -tr $REPOSITORY/ | grep jar | tail -n 1)
#
echo "> JAR NAME: $JAR_NAME"
nohub java -jar $REPOSITORY/$JAR_NAME 2>&1 &