Jenkins를 통해 CI를 적용하는 과정에서 여러가지 문제가 생겼다. 여기서 생긴 문제들을 해결하고 그냥 넘어가면 기억에 남지 않을 것 같아서 과정들을 하나하나 적어보려고 한다.
먼저 현재 상황은 Jenkins 설치를 마치고 계정생성까지 마친 상태이다.
Item
Jenkins에서 하나의 CI/CD를 구축하기 위해서는 아이템을 생성하여야 한다. 하나의 젠킨스 서버에 여러개의 아이템을 만들 수 있고 각각의 아이템들은 개발자가 설정하는 것에 따라 다르게 동작한다. 젠킨스에서 아티템을 만드는 방법은 FreeStyle과 Pipeline이 존재한다. 과거에는 FreeStyle 방법을 많이 사용했지만 요즘에는 Pipeline을 많이 사용한다고 한다.
Freestyle vs Pipeline
Freestyle
jenkins에서 기본 틀을 정해주고 안에 빈칸을 채우는 형식으로 프로세스 흐름을 정의하는 방식이다
장점
- 웹 기반의 GUI를 통해 여러 플러그인을 쉽게 사용할 수 있다.
단점:
- CI 파이프라인에 변경 사항을 만들기 위해서는 젠킨스에 로그인해 각각의 프리스타일 잡의 설정을 변경해야만 한다.
- CI/CD의 과정을 콘솔을 통해서만 확인할 수 있다.
- 각각의 과정들을 한번에 보기 어렵다.
Pipeline
한 곳에서부터 작업을 시작해서 일렬로 혹은 여러갈래로 뻗어져 나갔다가 다시 한 쪽으로 모이면서 마무리되는 방식이다.
장점:
- 파이프라인은 코드로 프로젝트 설정을 할 수 있어 프리스타일과 다르게 젠킨스 웹에 직접 접근하지 않아도 설정 변경이 가능하다. (웹을 통한 설정도 가능하다.)
- CI/CD 파이프라인 설정을 하나의 스크립트 파일(Jenkinsfile)로 프로그래밍을 통해 할 수 있다.
- Freestyle과 다르게 하나의 스크립트 파일(Jenkinsfile)을 통해 흐름 제어를 할 수 있다.
- 일반 코드처럼 버전 관리가 가능하게 된다.
- GUI를 통해 현재 어떤 과정을 진행중이고 평균적으로 얼마만큼의 시간이 걸렸는지 통계와 피드백을 준다.
단점:
- 프리스타일과 다르게 스크립트를 짜야하는 번거로움이 있다. 즉, 파이프라인 구축을 위해서는 스크립트 문법을 학습하여야 한다.
나는 간단하게 Freestyle로 구현해보겠다.
아이템 생성
- Jenkins에 접속 후 아이템 생성을 클릭하면 아래와 같은 페이지가 나온다. 그럼 생성하고자하는 아이템의 이름을 입력 후, Freestyle을 선택하고 ok를 누른다
- 아이템을 생성하면 설정페이지로 넘어간다. 내용들을 차례대로 넣어주겠다.
- 먼저 github project의 https url을 넣어준다.
- 그 후 소스코드 관리에서 git을 선택하고 아까의 url을 넣어주고 credentials를 선택해준다(없다면 추가할 것)
- 마지막으로 저장해주면 item생성이 완료된다.
ci 적용 과정에 생긴 문제
Repository url을 넣는 과정에서 이러한 에러가 뜰 수도 있다.
해당 에러가 발생하는 이유는 3가지다.
- credentials를 추가하지 않은 경우
- git이 해당 서버에 설치되지 않은 경우
- git 경로가 제대로 설정되지 않은 경우
나 같은 경우에는 git 경로가 제대로 설정되지 않았기 때문에 발생한 문제였다.
해결방법
해결방법은 간단하다.
- jenkins 관리 > Global Tool Configuration를 선택한다.
-
git 항목까지 내린 뒤 add git > git을 클릭한다
-
터미널에서 아래 명령어를 통해 git 경로를 확인한다
-
git 경로를 입력해주고 저장해준다
여기까지 마친 후 다시 item 설정 페이지로 돌아가면 에러가 사라진걸 볼 수 있다.