들어가기 전

EC2 프리티어를 사용하시는 분들 중 메모리로 인해 젠킨스가 실행 안 되는 문제를 겪고 계신 분들은 아래 포스팅을  읽고 해결한 뒤에 해당 포스팅을 읽으시는 걸 추천드립니다. 동작 방식에 대해서는 필자가 설정한 값 기반으로 설명하겠습니다.

 

https://hoestory.tistory.com/63

 

[AWS] EC2 프리티어에서 발생하는 메모리 문제 해결방법

들어가기 전 EC2 프리티어에서는 메모리를 1GB만 지원을 해주고 있습니다. 필자 또한 프리티어를 사용해서 메모리 문제를 직면하여 EC2에 띄워놓았던 젠킨스의 실행 속도가 너무 느리거나 멈추는

hoestory.tistory.com

 

동작 방식

1. 개발자가 Pull Request 또는 Push를 합니다.

2. 깃허브는 개발자가 Pull Request 또는 Push 한 코드를 기준으로 젠킨스한테 Web Hook을 날립니다.

3. 젠킨스는 깃 허브로부터 요청받은 Web Hook을 기준으로 코드를 빌드합니다.

4. 빌드의 결과를 깃허브에게 응답을 해줍니다.

 

 

이제 젠킨스 + GitHub를 이용한 CI를 적용하는 방법에 대해 알아보겠습니다.

 

젠킨스 설정

1. 플러그인 설치

젠킨스 대시보드 -> 젠킨스 관리 -> Plugins에 들어갑니다.

Github Pull Request Builder을 다운로드합니다.

다운로드가 완료가 되면 아래와 같이 설치된 플러그인에서 확인할 수 있습니다.

 

 

2. GitHub 연동하기 위한 젠킨스 구성 설정

젠킨스 대시보드 -> 젠킨스 프로젝트 -> 구성으로 들어가면 아래와 같은 화면이 보이게 됩니다.

 

설명은 자유롭게 작성해 주시면 됩니다. 그리고 GitHub Project를 체크해 주고 Project Url은 CI를 적용할 깃허브 레파지토리 URL을 작성해 주시면 됩니다. 

 

 

Repository URL은 .git으로 끝나는 주소를 붙여 넣기 해주시면 됩니다. 그리고 Branch Specifier은 필자 같은 경우는 */master로 설정했습니다.

 

 

 

Credentials은 같은 경우는 아래 이미지와 같이 설정하시면 됩니다.

 

 

Add 클릭 -> Jenkins를 클릭

 

알맞게 입력을 하고 Add를 한 뒤 Credentials에 만든 것을 설정해 주시면 됩니다.

 

 

빌드 유발에서 GitHub Pull Request Builder을 클릭을 하고 아래와 동일하게 입력해 주고 Admin list 같은 경우는 팀원들 깃허브 Username을 입력해 주시면 됩니다.

 

 

필자는 테스트 코드를 제외한 상태로 빌드를 돌리기 위해 쉘을 아래와 같이 작성했습니다.

 

 

 

깃허브 설정

CI를 적용할 레파지토리의 Settings를 들어갑니다.

 

 

 

 

 

WebHook을 추가합니다. Content-Type은 젠킨스에서 빌드 성공 또는 오류에 대한 내용을 Json형태로 보는 게 편해서 필자는 Json 타입을 선택하였습니다. 그리고 WebHook이 발생하는 이벤트를 설정합니다. 필자는 Pull request 또는 Push가 일어나면 젠킨스에게 WebHook을 날리도록 설정하였습니다.

 

 

 

 

 

 

WebHook을 정상적으로 설정하였다면 아래 이미지와 같은 화면을 보실 수 있습니다.

 

 

 

브랜치에 대한 규칙을 아래와 같이 추가합니다.

 

 

 

위에서 설명한 내용대로 수행을 했다면 아래와 같이 빌드가 성공되는 화면을 보실 수 있습니다.

 

 

 

'DevOps > Jenkins' 카테고리의 다른 글

[Jenkins] Docker를 이용한 Jenkins 초기설정  (2) 2022.12.15