-
Jenkins 활용해서 Spring boot 서버 배포하기 - 2기타 2021. 12. 13. 03:24
지난 1편에서 EC2에서 Docker로 Jenkins를 띄운 뒤, Jenkins Dashboard까지 띄우는 작업을 했다.
이전 포스팅: https://zin-oh.tistory.com/52
이번 포스팅에는 Jenkins와 git hook trigger를 이용한 서버 배포 자동화까지 해보도록 하겠다.
1. Jenkins에서 새로운 item 만들기
새로운 item을 클릭한다.
본인의 프로젝트 명이나 jenkins_test 등 아무렇게 이름을 지정한 뒤 Freestyle project를 설정한다.
그 뒤 OK를 눌러 다음 창으로 간다.
1) General 설정
위 탭의 General 부분 설정은 다음과 같이 하면 된다.
설정 화면에서 우리는 Github을 이용해 프로젝트를 관리할것이고, 후에 hook trigger을 이용해 Jenkins가 자동으로
빌드 및 배포를 하게 할것이므로 Github project를 체크해준다.
오래된 빌드 삭제는 보관할 최대 갯수만 조정한 뒤 넘어가자.
2) 소스 코드 관리
다음으로 소스 코드 관리부분을 보겠다.
위 빨간 박스 안의 내용들을 채워 넣는다.
git Repository URL 에서는 빌드할 프로젝트의 git 주소를 입력한다.
Credentials에서 Add 버튼을 누른다.
그 뒤 아래의 Kind의 Username password를 설정한다.
자신의 github username과 password를 적는다. (혹시 안될 시 다른방법인 SSH 등의 방법을 이용하면 될듯 하다.)
3) 빌드 유발 및 빌드
Jenkins 에서 프로젝트를 빌드 유발 시키기 위해서 우리는 Github hook trigger을 이용할 것이다.
Github hook trigger을 유발시키는 브랜치는 아까 우리가 지정했던 master 브랜치이다.
여기서 변화가 일어나면 Jenkins에 해당 변경을 감지한 뒤 빌드를 한다.
Build 부분에서는 Execute shell을 선택한 뒤 Command부분을 작성한다.
Command 작성시 주의 점!!!!!
현재 글쓴이의 프로젝트를 보았을 때,
다음과 같이 Duder라는 레포지토리 안에 back, front 폴더로 나뉘어져 있다.
그 중 back 폴더 내 gradlew가 있고 해당 파일을 실행하기 위해서는
back폴더 내로 들어가 실행하여야 한다.
만약 본인의 레포지토리 최상위에 gradlew가 있다면 위의 내가 했던 명령어 중
cd back 명령어는 빼도 되는 것이다.
최상위에 gradlew파일이 있을 경우 Command
./gradlew cealn build
하위 폴더에 gradlew 파일이 있을 경우 Command
# cd 명령어를 통해 해당 gradlew가 있는 디렉토리로 접근 ./gradlew clean build
해당 작업이 끝난 뒤 저장을 한다.
4) Github 에서 hook trigger 설정
Github의 Spring 프로젝트 레포지토리에서 Settings를 들어간 뒤 Webhooks 설정을 한다.
Add webhook 버튼을 누른다.
Payload URL에 http://{Jenkins_ip주소}/github-webhook/ 를 입력한다.
Content type 및 설정은 그림을 참고하여 체크 한 뒤 webhook을 설정한다.
다시 젠킨스로 돌아와서...
2. 빌드가 잘 되는지 확인하기
Dashboard -> 본인의 Jekins project 들어가면 다음과 같이 화면이 나온다.
Build Now를 통해 ./gradlew clean build 명령어가 잘 작동하는지 확인해보자.
해당 버튼을 클릭한 뒤, Build History에 (#12) 와 같이 되어있는 버튼을 클릭 -> Console output을 클릭한다.
Command에 쳤던 명령어들이 나오고 마지막 console에
다음과 같이 나오며 빌드가 성공한 것을 알 수 있다.
실제로 ubuntu (root인 곳 말고 sudo su - 하기 전)에 다음과 같은 명령어를 치면 우리가 git을 통해 들고온 프로젝트를 볼 수 있다.
cd /home/jenkins/workspace
현재 글쓴이는 Duder 프로젝트를 git을 통해 들고왔다.
빌드 된 .jar 파일을 보기 위해 프로젝트 내 build/libs 폴더를 들어가보니 해당 파일이 있었다.
3. Github hook trigger 동작 확인하기
Github 프로젝트와 브랜치를 적었던 곳에서 변화를 주어 해당 프로젝트가 잘 동작하는지 확인해보겠다.
글쓴이는 master 브랜치를 적었고 해당 브랜치에 변경사항을 반영해보겠다.
master 브랜치에 Readme를 수정한 뒤 Jenkins 화면
Commit message 에 hook 실험 했던 부분이 그대로 반영되어 빌드 되었다.
이렇게 중간 점검으로 Jenkins로 빌드가 잘 되었는지 확인해 보았다.
생각보다 글을 쓰려니 양이 많다... 그래서 한 번 더 나눠 쓰려고한다. (다음 포스팅이 마지막이 되지 않을까 생각한다)
다음에는 빌드된 jar 파일을 SSH를 통해 Spring boot server로 전송하는 작업과 Docker를 이용해 Spring boot를 띄워 보겠다.
'기타' 카테고리의 다른 글
Jenkins 활용해서 Spring boot 서버 배포하기 - 1 (1) 2021.12.12 개인정보 처리방침 (0) 2021.03.18