본문 바로가기
배포

Jenkins & GitLab CI/CD 구축하기

by Hasky96 2022. 3. 21.

Jenkins 설치는 여러 블로그 참고하시는 것 보다 공식 홈페이지 공식문서 참조하는 것을 추천드립니다.

https://www.jenkins.io/download/

 

Jenkins download and deployment

Jenkins download and deployment The Jenkins project produces two release lines: Stable (LTS) and regular (Weekly). Depending on your organization's needs, one may be preferred over the other. See the links below for more information and recommendations abo

www.jenkins.io

젠킨스 설치하기

  • 저는 특별히 커스터마이징 없이 설치하였습니다.

Git Plugin 설치하기

Jenkins 관리 > System Configuration > 플러그인 관리 > Plugin Manager 

 

GitLab을 검색하여 GItLab API Plugin을 설치해 줍니다.


Credential 만들기

1. GitLab에서 Personal Access Token 만들기

User Settings > Access Tokens 

Scopes 에 api를 포함하여 Token을 생성해 줍니다.

 

2. Jenkins에 등록하기

Jenkins 관리 > Security > Manage Credentials > Credentials > add credentials

 

    Kind 를 GitLab API token으로 설정합니다.

 

    GitLab에서 발급하는 Token을 API token에 작성합니다.

 

    ID는 식별하는 용도로 구분할 수 있는 것으로 생성해 줍니다.


GitLab Connection 만들기

Jenkins 관리 > 시스템 설정 > GitLab 

GitLab connections을 제작합니다.

 

host URL 깃랩 도메인 주소를 넣어줍니다. (저는 SSAFY생이기 때문에 SSAFY GitLab 주소를 작성했습니다)

 

Credentials 은 아까 제작한 Credential을 선택해줍니다.


Item 생성

Dashboard > 새로운 Item > Freestyle project

 

!프로젝트 세팅!  여기가 핵심!!

General > GitLab Connection

아까 만든 Gitlab Connection을 선택합니다.

 

소스코드관리 > Git

Git 을 선택하고 Repository URL을 입력합니다.

(Git에서 clone할때 주소를 입력하면 됩니다.)

 

Credential을 선택해줍니다. ( 필요 시 git access token발급받아서 만드시면 됩니다. ) 

 

Branches to build

빌드되길 원하는 브랜치를 선택해 줍니다. (기본은 Master)

 

 

빌드 유발

빌드가 일어날 트리거를 선택해 줍니다.

 

저는 GitLab에 변화가 생길때로 해주었습니다.

!!! 이과정에서 반드시 GitLab에 Webhook을 달아주어야 합니다.

깃랩 프로젝트 에서

 

Settings > Webhooks 

 

URL : 빌드유발에서 GitLab webhook URL 을 복사하여 사용합니다.

Secret token : 빌드유발에서 아래에 고급을 눌러 Secret token을 Genereate 하여 사용합니다.

사용할 Trigger을 선택하여 등록합니다.

 

Test를 눌러 200 response가 돌아오는지 확인합니다.

이 부분을 잘 읽어보시고 설정하시면 원하는 상황에 따라 혹은 Label, Comment에 따라 빌드를 유발시킬 수 있습니다.

 

 

빌드 실행하기

Build에서 Add build step 을 선택하여 빌드합니다.

빌드 시 수행될 사항들입니다.

 

Execute shell 명령어를 사용하여 배포 할 수도 있고, 미리 만들어둔 deploy.sh파일을 실행시켜 배포 할 수도 있습니다.

필요에 따라 Gradle, Ant, NodeJS 플러그인을 설치하여 배포할 수도 있습니다.

여러과정을 순차적으로 실행도 가능합니다.

 

 

결과

Gitlab Merge Request로 빌드가 실행된 모습입니다.

'배포' 카테고리의 다른 글

Jenkins Spring(REST) & React 배포 2 (FRONT)  (0) 2022.02.17
Jenkins Spring(REST) & React 배포 1 (BACK)  (0) 2022.02.17