네이버 클라우드 캠프/Spring Boot & React

[Spring Boot & React] 게시판 앱 배포하기(1)

graph-dev 2023. 8. 12. 14:26
728x90

게시판 앱을 배포하겠습니다.

 

게시판 앱을 github에 올린 분들이 이제 Jenkins를 통해 빌드를 해보는 작업을 수행하겠습니다. Github 사이트에 로그인 후, 프로필에 나오는 Settings > 왼쪽 메뉴 최하단 Developer settings를 누릅니다.

 

Developer settings

 그 다음, Personal access tokens > Tokens(classic) > Generate new token(classic)으로 접근하여, 토큰을 생성하겠습니다.

personal access tokens

 

그 다음 repo를 누르고, 필요한 이름은 Note, 만료일(Expiration)을 원하는 대로 선택하고 Generate tokens를 눌러서 발급합니다.

repo tokens

 중요한 점은, 다음에 나오는 생성된 token은 한번 창을 끄면 다시 확인이 안됩니다. 반드시 메모해두거나 아니면 아예 다시 볼 일이 없도록 필요한 앱에 입력해주는 게 좋습니다. 제 경우, 차후 Jenkins에서 필요하므로 잘 저장해두겠습니다.

 

Jenkins 프로젝트 생성을 합니다.

Jenkins Dashboard에서 새로운 item을 누르고, 원하는 이름 입력 후, Freestyle project로 선택합니다. 그리고 OK 버튼을 누르면 됩니다.

새로운 item

 

다음으로, General에는 적절한 설명을 넣고, GitHub project 주소(github 레포지토리 주소)를 입력합니다. 

저는 미리 생성해둔 github 주소를 입력하겠습니다.

General 설정

 

소스관리 credential 설정 화면

  Username은 github 계정명을 넣고, Password는 위에서 생성한 토큰 값을 넣어줍니다.

 

다음은 빌드 환경 > Provide Node 선택해줍니다.

 

빌드 환경 설정

마지막으로 Build Steps > Invoke Gradle script에서, Gradle 버전을 8.2.1로 선택하고, Tasks에 clean build를 입력합니다.

Build Steps

 

이 작업이 완료되면, 지금 빌드를 누르겠습니다.

지금 빌드가 보입니다.

빌드가 잘 되는지 확인하려면, Dashboard > 앱 이름 > Console Output 에서 맨 하단을 보시면 됩니다. 해당 부분에서 아래와 같이 BUILD SUCCESSFUL이 뜨면 빌드 성공입니다.

빌드 성공

 

그리고 추가로, 도커에 접속해서 젠킨스에 추가한 item(myApp)이라는 것이 생성되었는지 확인해보겠습니다. 터미널이나 명령 프롬프트 창으로 jenkins 서버에 접속한 다음, 다음 명령어를 작성합니다.

Jenkins home 경로에 생성된 myApp item 확인

 jenkins_home/workspace에 생성된 myApp 이라는 item 폴더를 실제로 확인할 수 있습니다.

 

또한, myApp 폴더 내부로 들어가면, github에서 가져온 파일들이 다 나타납니다.

git 내부 파일과 동일

빌드가 종료되면 myApp/build/libs 경로 안에 .jar 파일이 남아 있는 것을 확인할 수 있습니다.

jar 파일 확인

 

 그 다음으로, github > graph-reactboard[레포지토리 이름] > Settings로 들어가겠습니다. 그러면 Webhooks라는 메뉴가 있는데 들어가신 다음, Add webhook을 눌러주겠습니다.

 

Webhooks 설정 화면
webhook 상세 설정

 여기서, Payload URL은 저희 jenkins 서버 주소를 넣고 뒤에 포트번호와 문자열을 붙여서 입력합니다.

http://[Jenkins 서버의 공인 IP 값]:8080/github-webhook/

Content type은 application/json으로 설정해주고 Add webhook을 눌러 최종 저장을 합니다.

Webhooks

 이렇게 완료된 화면이 나타나면 웹훅이 추가된 것입니다. 이게 있으면, 저희가 올린 소스코드에 변화가 생겨서 git push를 수행하면, 그 때마다 젠킨스 서버에서도 변화를 반영해서 빌드를 수행할 준비가 된 것입니다.

 

다만 이걸 적용하기 위해서 Spring boot 서버와도 연동해야 하는데, 이것은 다음 콘텐츠에서 이어서 진행하겠습니다.