개발공작소
article thumbnail
728x90

 

 

 

 

오늘은 젠킨스에 대해 간략히 정리하려고 한다. 요즘 깃허브 액션이나 깃랩 액션도 많이 쓰이긴 하지만
어차피 같은 CI/CD라는 점에서 맥락은 비슷하다.

우선 젠킨스를 알기전에 CI/CD의 개념부터 알고 넘어가도록 하자.

 

 

CI/CD란?

 

CI : Continuous Integration

1) 여러 명의 많은 개발자들이 코드 베이스를 계속해서 통합

 

CD : Continuous Delivery(또는 Continuous Deployment)

1) 소스가 항상 배포 가능한 상태를 유지하는 것을 의미, 소스를 사용자가 사용 가능한 환경에 배포하는 것을 자동화

 

 

즉, "개발자들이 작성한 소스를 지속적으로 통합하면서 통합한 소스를 자동으로 운영서버(서비스 서버)에

배포 될 수 있도록 도와주는 도구"인 것이다.

 

 

CI/CD 그림

 

 

젠킨스(Jenkins)란?

 

CI/CD를 지원하는 여러가지 툴들이 있는데, 그 중 하나가 젠킨스(Jenkins)이다. 요즘은 깃허브나 깃랩내에서

자체적으로 CI/CD를 할 수 있도록 깃허브 액션이나,깃랩 CI/CD도 나왔지만(깃티에서도 지금 개발중)

 

젠킨스가 처음 나온건 2005년이니 오래 되었고, 아직까지도 많이 쓰이고 있다.

 

결론은 CI/CD를 지원하는 여러가지 툴 중 하나라는 것만 기억하도록 하자.

 

 

젠킨스 서버에서는 각종 플러그인들을 지원한다. 젠킨스 서버를 단순 설치만 한다고 CI/CD가 막 자동으로 되지도 않고

Git과 연동해서 트리거를 걸 수도 없고, 노드를 통한 빌드를 할 수도 없다.

 

젠킨스는 단순 서버이며, CI/CD를 위해서는 각종 플러그인들을 설치해서 플러그인을 통해 CI/CD를 수행하게 된다.

 

 

젠킨스 서버 단순 그림

 

 

위 그림을 대충 보면, 젠킨스 서버가 있고 그 안에는 각종 플러그인들이 있다.

젠킨스에서 가장 중요한 파이프라인 또한 많은 플러그인들 중 하나이다.

 

보통 젠킨스를 설치할 때, Default 옵션을 선택하면 기본 플러그인(Git, Pipeline, Credentials 등)은

설치가 되고필요시에 따로 플러그인을 설치 할 수도 있다.

 

 

대충 로직

 

일단 내가 젠킨스로 CI/CD를 하고 난 뒤 이해한 내용을 대충 그림으로 그려 보았다.

 

1) 개발자가 소스를 작성하고 Git(형상관리)에 Push를 한다.

2) Git의 Repository의 내용이 변경된다.

3) Git과 연동되어 있던 젠킨스에서 변동사항을 감지한다.

4) 자동(또는 수동)으로 트리거 되면서 개발자가 미리 작성한 파이프라인이 수행된다.

 

여기 파이프라인에는 빌드, 테스트, 배포, 백업 등 개발자가 원하는 작업이 정의된다. 라고 이해가 됬다.

 

( 그래서 테스트를 할 때, Jest등의 라이브러리를 사용할 수 있을 것 같다.. )

 

여기까지 이해가 됬으니, 이제 시간이 되면 gitea와 젠킨스를 연동하는 것도 정리해보겠다..

 

 

 

 

728x90
profile

개발공작소

@모찌바라기

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!