티스토리 뷰

현재 개발하고있는 환경에선 이미 CI가 구축되어있어 특별히 내가 작업할일은 없었는데 이번에 신규 프로젝트를 들어가면서 직접 구성을 해야할 일이 생겼다. 이런저런 자료들이 많긴한데 딱 내가 원하던 한글 블로그는 없어서 작성을 해본다. 시작하기전에 말하면 jenkins가 너무 잘해줘서 딱히 내가 할일이 많지 않아 놀랐다.

 

Jenkins plugins

jenkins에서 blue ocean 플러그인을 설치한다. 음.. 개인적으로 나는 jenkins 쓰면서 플러그인이 없어서 몇번 삽질을 한경험이 있어서 jenkins 신규로 띄우고 바로 github, blue ocean, pipeline 플러그인을 왠만한건 다 설치했다. ㅡ.ㅡ; 혹시 이 포스팅을 보면서 자신의 Jenkins와 메뉴가 다르다던가 하면 저 3개 관련 플러그인을 확인해보는것도 좋을것같다. 참고로 내가 구성하는 Jenkins 버전은 2.138.4 다.

Jenkins pipe line

플러그인을 설치하면(혹은 디폴트로) blue ocean 으로 UI를 변경할 수 있는 메뉴가 있을 것이다. 클릭.

 

 

new pipeline 으로 신규 파이프라인을 생성한다.

 

 

신규 파이프라인을 생성하는 메뉴에 오면 사용하는 repository 를 등록하는 화면이 뜨는데 자신이 사용하는걸 선택하면된다. 이번 포스팅은 github와의 연동이니 github 혹은 github enterprise 기준으로 설명한다.

github(혹은 github enterprise) 를 선택하면 repository에 접근하기위한 access token을 요구한다.
친절하게 access token을 발급받을 수 있는 링크까지 제공하니 그대로 클릭해서 넘어가면된다.

그렇게 github으로 이동하면 access token의 scope를 정하는 화면이 뜨는데 확인해보고 선택하면된다. 난 그냥 default 로 진행했다.
access token을 넣어주면 organization 을 선택하고, repository를 선택한다. 적절하게 선택하고 create pipeline 을 누르면 된다.

그러고나면 pipeline 을 생성하는 화면으로 이동하는데 이 부분이 ci 스크립트를 작성하는 핵심이다.

 

 

난 지금 하나의 step만을 지정한 모습이다. 그리고 그 하나의 step은 간단하게 shell script 로 gradle 테스트를 실행시키는 예제다. 이걸 생성하면 코드 repository에 Jenkinsfile 이라는 파일이 생성되는데 이 파일을 통해 Jenkins pipeline을 관리하게된다. 지금은 간략하게 만들더라도 추후에 pipeline을 변경하거나 추가할 일이 생기면 생성되는 Jenkinsfile을 수정해주면된다. pipeline 스크립트를 repository 내의 파일로 관리함으로써 jenkins에 직접 입력해놓는것보다 수정하기도쉽고 이력관리도되는 이점이 있다.

 

github

Jenkinsfile까지 완성되고나면 이떄부터 access token을 발급할때 선택한 hook이 발생할때마다 ci가 돌게된다.

PR을 날렸을때도 자동으로 ci가 돌고 테스트 성공여부를 커밋 옆에 보여준다. 아래 캡쳐는 PR을 하나 올린건데 커밋옆에 녹색 체크가 있는걸 볼 수 있다.

 

마무리

이번 작업을 하면서 Jenkins는 뭔가 이리저리 해줘야할게 많다는 내 고정관념을 깨게됐다. blue ocean의 예쁜 UI도 감탄스러웠고 GUI 기반으로 쉽게 pipeline을 만드는것도 놀라웠다. 사실 해보고나니 포스팅을 할필요가 있을까 싶을정도로 쉬워서 고민을 좀 했지만 이 방식 자체를 찾지 못하고 삽질하는 사람이 있다면 도움이 되길바란다.

 

참고

- https://resources.github.com/whitepapers/practical-guide-to-CI-with-Jenkins-and-GitHub/

 

 

댓글
댓글쓰기 폼