진짜 개발자
본문 바로가기

Software Engineering/CICD (jenkins, etc)

CI - CI/CD 구성 - 3 (Jenkins GitHub 연동)

728x90
Jenkins & Github 연동

Jenkins & Github 연동

 

GitHub Access Token 발급

github에 로그인 한 후 Profile을 클릭하여 나오는 Settings 메뉴를 클릭한다



좌측 하단의 Developer settings탭을 클릭한다 



좌측의 Personal access tokens 탭을 클릭한 뒤 Generate new token을 클릭한다.



Token description에 설명을 기입한 후 Jenkins에서 필요로하는 권한 Scope를 지정한다


 

생성이 완료되면 token 값이 생성되는데 이 때 저장해놓지 않는다면 다시 token 값을 확인할 수 없다

 


 

Access Token을 이용해 Jenkins에 GitHub 연결

Jenkins 관리 탭의 시스템 설정을 클릭한다


GitHub Server 문단에 Jenkins에서 GitHub API를 요청하기 위한 정보들을 기입한다. 그 후 Add를 클릭해 Credentials를 추가한다. 바로 아래 그림에서는 "jenkins"라는 credential을 선택한것이 보이지만 처음에는 Credential이 없기 때문에 아무것도 선택할 수 없다. 아래 그림은 그 아래에서 Credential을 생성한 후에 선택한 그림이다.



Ngrok

https://blog.outsider.ne.kr/1159

jenkins-url 에는 위에서 설명드렸듯이, 외부에서 접근 가능한 ip 즉, 공인 ip여야 합니다. 또는 게이트웨이(라우터)에서, 포트포워딩을 해주어, jenkins가 동작하는 host로 패킷을 전달받을 수 있도록 설정을 해야합니다. 하지만, 이러한 설정이 일반 가정환경에서는 쉽지 않습니다. 이를 도와주는 것이 바로 Ngrok입니다. 위의 포스트에 정리가 잘되어있으므로 참고하여 설치하시길 바랍니다.



Add Credentials 설정



Credential 추가가 완료 되었다면 우측하단의 Test connection 을 클릭해 연결 확인을 한다 그림과 같이 verified for ~이 나타난다면 연결이 성공된 것이다.

 

 

 


 

Jenkins Project 생성

하나의 프로젝트의 테스트, 빌드, 배포를 관리하기 위한 Jenkins Project를 생성한다.

 

좌측 상단의 새로운 Item을 클릭한다


적절한 이름을 입력한 뒤 Freestyle project를 선택한 뒤 생성을 마친다


 


 

Jenkins Project와 GitHub Project 연결

CI/CD를 담당해줄 Jenkins Project와 대상이 되는 GitHub상에서 형상관리 되고 있는 Project를 연결한다.

 

생성이 완료된 jenkins project를 클릭한다

 


좌측의 구성탭을 클릭한다

 


General 탭에서 GitHubProject를 체크한 뒤 연결할 GitHub Project의 Url을 입력한다



같은 페이지 하단의 소스 코드 관리 문단에서 Git을 체크한 뒤 Repositories에 연결을 위한 설정을 진행한다. 그 후 Add를 클릭하여 GitHub Project에 연결하기 위해 GitHub 계정정보가 담긴 Credential을 생성한다.

 

Credentials에 아래와 같이 입력한다


 

같은 페이지 하단에 빌드 유발(Build Trigger) 문단에 GitHub hook trigger for GITScm polling를 체크한다


 

같은 페이지 한단의 Build 문단에서 Build시 사용될 Gradle에 대한 설정을 진행한다. Use Gradle Wrapper을 체크, Make gradlew executable 체크(체크하지 않으면 권한 에러로 인해 실행이 불가능하다) , Tasks 에는 Build시 사용될 gradle task를 입력한다. (코드를 build 하기위해 build를 입력했다)

 



 

Jenkins를 이용한 Build Test

프로젝트 메뉴에서 Build Now 를 클릭하면 연결된 GitHub Project의 코드를 받아와 설정된 Build를 실행한다.

 


빌드의 결과물은 /var/lib/jenkins/workspace/"Project"/build/libs/ 안에 있다.