젠킨스

09 Jan 2019 - breadkey

Goals

  • 젠킨스가 무엇인지 이해한다.
  • 현재 진행중인 프로젝트에 젠킨스를 연동한다.

젠킨스란?

먼저 continuous itegration(지속적 통합)의 이론에 대해 알 필요가 있다. 일반적으로 개발자들은 깃과 같은 협업툴을 사용해서 현재의 코드 베이스(현재 개발중인 branch 레포지토리)의 복사본을 받아서 작업을 시작한다. 변경된 소스 코드를 레포지토리에 제출하려면, 레포지토리의 최신 변경내용을 자신의 코드에 반영(pull)한 후 자신의 코드를 그에 맞게 업데이트(merge 등)하여 코드를 제출하여야 한다. 그런데 레포지토리의 변경사항이 많으면 많을수록 개발자들이 자신의 코드를 제출하기전에 해야할 일이 많아진다. 레포지토리의 내용이 작업을 시작했을 때와 너무 달라진다면 “통합의 지옥“상태에 빠지게 된다. 최악의 경우 자신이 작업한 것을 모두 버리고 현재 레포지토리의 변경상태에서 작업을 다시 진행하는게 나을 수도 있다.

지속적 통합은 초기에, 자주 통합해서 “통합의 지옥”을 피하게 하는데, 이를 통해 재작업을 줄여 비용과 시간을 줄이게 해준다. 이렇게 지속적 통합을 할 수 있도록 도움을 주는 도구 중 하나가 바로 Jenkins이다.


젠킨스를 현재 작업중인 프로젝트의 깃허브와 연동해서 지속적 통합을 가능하게 해보자

1. 젠킨스 설치

젠킨스는 현재 Java 8, 11(jenkins 2.155이상 부터)만 지원하며 자바 9, 10, 12는 지원하지 않는다.

2. 깃허브 토큰 생성

  1. 깃허브 Settings > Developer settings > Personal access tokens > Generate new tokken 클릭
  2. 접근 범위 repo, admin:repo_hook 추가

3. 젠킨스에서 깃허브 연결 설정

  1. Jenkins 관리 > 시스템 설정 > Add GitHub Server
  2. 이름 설정, API URL 건드리지 않고 Credentials Add
  3. Kind Secret text로 선택, Secret 란에 깃허브에서 생성한 토큰 입력, ID에 깃허브 username 입력
  4. Test connection을 통해 깃허브와 연결되는지 테스트

4. 젠킨스 프로젝트 설정

소스코드 관리

소스코드 관리에 Git을 추가한다. 레포지토리에 깃허브 레포를 입력하고 Credentials에는 깃허브 계정을 추가한다.

빌드 트리거(빌드 유발) 설정

GitHub hook trigger for GITScm polling을 체크한다.
그러면 push -> webHook을 Jenkins에게 보냄 -> 빌드 수행 이 과정이 진행된다.

tag: jenkins

Related Posts