▼ DevOps/젠킨스 (Jenkins)

Jenkins(젠킨스) | Gradle, Jar 빌드&배포하기

Valar 2021. 8. 23. 16:57
반응형

 

Jenkins 설치
 

AWS | EC2(Linux)에 Jenkins 설치하기

Jenkins(젠킨스) 설치 전, 자바를 필요로 하기 때문에 설치 후 진행한다. https://kitty-geno.tistory.com/25 설치 진행 3. 설치된 자바 버전 확인 java -version 4. javac 설치.." data-og-host="kitty-geno.tist..

kitty-geno.tistory.com

 

Jenkins + GitHub | Item(프로젝트) 생성
 

Jenkins + Github 연동하기

Jenkins가 정상적으로 설치되어있다는 가정하에 진행되었습니다. https://kitty-geno.tistory.com/86 AWS | EC2 Linux2에 Jenkins 설치하기 젠킨스 설치 전, 자바를 필요로 하기 때문에 설치 후 진행한다. https:/..

kitty-geno.tistory.com

 


▶ 구성환경

Eclipse, Jenkins, SpringBoot, Gradle, Jar, Linux, Java, GitHub

Step

  • 프로젝트 build.gradle(bootJar, bootRun) 설정
  • Jenkins 플러그인 설치
  • Jenkins Global Tool Configuration 설정
  • Jenkins Item(프로젝트) Build, 빌드 후 조치 구성
  • Jenkins Build Now

 

build.gradle

bootJar, bootRun은 제일 마지막 라인에 추가한다.

 

//@SpringBootApplication이 선언된 MainClass 설정
bootJar {
    mainClassName = 'com.melon.boot.MelonApplication'
}

...

//profiles 설정
bootRun {
    String activeProfile = System.properties['spring.profiles.active']
    systemProperty "spring.profiles.active", activeProfile
}

 

Jenkins 플러그인 설치

경로) Jenkins 관리    플러그인 관리

Gradle Plugin
=>  Gradle 빌드를 위한 플러그인

Post build task
=>  빌드 로그를 판단해 batch/shell를 실행하는 플러그인

 

 

 

Jenkins Global Tool Configuration 설정

경로) Jenkins 관리  →  Global Tool Configuration  →  Gradle

Name
=>  원하는 이름으로 작성

Version
=>  실제 프로젝트 Gradle 버전, gradle-wrapper.properties에 명시되어있음

 

 

 

Jenkins Item(프로젝트) Build, 빌드 후 조치 구성

Item(프로젝트) 상세 에서  구성 선택

 

 

Build

invoke Gradle script 선택  →  Gradle Version 선택 (Global Tool Configuration에서 생성했던 버전)
Tasks에 bootJar

 

 

빌드 후 조치

Post build task 선택
=>  Log text(로그에 남길 텍스트)

Script 
=>  nohup java -jar /var/lib/jenkins/workspace/[프로젝트명]/build/libs/[jar파일명] &

 

application.yml(또는 properties)이 아래와 같이 분리 되어 있다면 -DSpring.profiles.active 를 추가한다.

 

*Example

application-dev.yml, application-prod.yml


nohup java -jar -DSpring.profiles.active=dev /var/lib/jenkins/workspace/[프로젝트명]/build/libs/[jar파일명] &

 

여기서는 application.yml를 사용하기 위해 Dspring.profiles을 추가하지 않았다.

 

Jenkins Build Now

Build Now(빌드 실행 후)   Build History    Console Output에서 로그 확인이 가능하다.

 

 

 

SpringBoot 프로젝트에서 기본으로 설정된 포트 8080으로 접속
*포트는 프로젝트 내에 설정에 따라 다를 수 있다.

 

 

 

실행된 프로세스 확인 및 종료하기

 

#실행중인 프로세스 출력
#java로 실행되고 있는 프로세스 출력
ps -ef | grep java 

#해당 프로세스에 대한 출력
ps -ef | grep '프로세스명'

#실행중인 프로세스 종료
kill -9 [pid]

 

주기적으로 빌드하려면 Build Schedule 사용 (Item 상세 빌드 유발)

매일 오전 5시에
00 05 * * *

1시간마다
H * * * *

10분마다
H/10 * * * *

월~금요일, 오전 9시~오후 6시, 1시간마다
H 9-18/1 * * 1-5

일요일, 1시간마다
H * * * 7

 

 


nohup에 대한 자세한 설명
 

쉽게 설명한 nohup 과 &(백그라운드) 명령어 사용법

안녕하세요. 린아저씨 입니다. 리눅스를 사용하다 보면 프로그램을 백그라운드에서 세션과의 연결이 끊어져도 돌려야할 일이 많이 발생합니다. 그럴때 주로 사용하는 명령어가 바로 nohup 과 &

joonyon.tistory.com

반응형