서버

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 &