엄지월드

[back] java jar jenkins 배포(jenkins 자동배포) 본문

Server&DevOps

[back] java jar jenkins 배포(jenkins 자동배포)

킨글 2024. 7. 8. 22:39

jenkins 자동배포 방법에 대한 글입니다.

spring으로 개발된 jar 파일을 jenkins를 통해 배포하겠습니다. 

 

pipeline {
    agent any

    environment {
        // Gradle 실행 파일의 경로를 환경 변수로 설정
        GRADLE_HOME = '/opt/gradle/gradle-8.7/bin'
    }

    stages {
        stage('Checkout') {
            steps {
                git branch: 'main', url: 'https://github.com/user/user-service.git', credentialsId: 'git-token'
            }
        }
        stage('Build') {
            steps {
                sh '$GRADLE_HOME/gradle build bootJar -x test' // Gradle을 사용한 빌드 테스트 생략
                sh 'sudo cp /var/lib/jenkins/workspace/user-service/build/libs/user-service-0.0.1-SNAPSHOT.jar /server/build/user-service/' // 빌드파일 복사
            }
        }
        stage('Deploy') {
            steps {
                sh 
                '''
                sh /server/launcher/user-service-shutdown.sh && sh /server/launcher/user-service-startup.sh
                echo "Done"
                '''
            }
        }
    }
}

 

 

아래와 같이 위에서 선언한 startup.sh와 shutdown.sh 파일을 만들어줍니다. 

startup.sh 

echo "Deploy Project...."

sudo nohup java -jar /server/build/travel-service/travel-service-0.0-SNAPSHOT.jar > /server/logs/travel-service/travel-service.log 2>&1 &

echo "Done"

 

shutdown.sh

echo "PID Check..."

CURRENT_PID=$(ps -ef | grep java | grep travel-service | awk '{print $2}' | paste -sd " ")

echo "Running PID: {$CURRENT_PID}"

if [ -z $CURRENT_PID ]
then
	echo "service is not running"
else
	sudo kill $CURRENT_PID
    echo "service shutdown done"
    sudo sleep 10
fi

 

sh 파일 실행 권한이 없다고 나오면 아래 명령어를 통해 권한을 추가

sudo chmod +x /.../.../launcher/travel-service-shutdown.sh
sudo chmod +x /.../.../launcher/travel-service-startup.sh

'Server&DevOps' 카테고리의 다른 글

aws linux에서 MySQL 설치 방법  (0) 2024.08.06
[front] react jenkins 배포  (0) 2024.07.08
ubuntu find 허가 거부됨 제외  (0) 2023.10.08
zsh: command not found: mysql  (0) 2022.09.07
[goormIDE] tomcat 실행 방법  (0) 2022.07.12
Comments