don't stop believing

Gitlab에 연결해 빌드하기 본문

Tools/Jenkins

Gitlab에 연결해 빌드하기

Tongchun 2017. 12. 28. 17:31

Gitlab의 특정 project에 push된게 있다면 가저와서 빌드하는 것을 Jenkins로 구현해 봅시다.

시작은 기본 구성에서 시작하겠습니다.

[Ubunto에 Jenkins 설치]


Jenkins가 Gitlab에 연결하려면 git 과 Gitlab, Gitlab Hook plugin이 필요합니다. Jenkins 설치할 때 git plugin은 기본 설치됩니다.

설치된 plugin은 Jenkins 관리 > 플러그인 관리 > 설치된 플러그인 목록 탭에서 확인할 수 있습니다.

Gitlab과 Gitlab Hook plugin 설치는 설치가능 탭에서 확인할 수 있으며 우측 상단의 필터롤 찾을 수 있습니다.

jenkins 설정에 앞서 Gitlab에서 Access Token을 생성해야 합니다.

Access Token은 Gitlab의 User Settings > Access Tokens에서 생성할 수 있습니다.

Name과 Expires at을 입력하고 Scopes를 선택합니다. 그리고 Create personal access token 버튼을 클릭하면 Access Token이 생성되게 됩니다.

생성된 Access Token을 Jenkins에 등록해야 합니다.

Jenkens > Credentials > global > adding some credentials 순차적으로 클릭해서 들어갑니다.

Jenkens의 navigation에는 Jenkins > Credentials > System > Global credentials (unrestriced) > Add Credentials 로 되어 있네요.


Kind에는 GitLab API token을 선택합니다.

Scope에는 Global (Jenkins, nodes, items, all child items, etc)를 선택합니다.

API token에 Gitlab에서 생성한 Access token을 입력합니다.

ID와 Description을 작성한 후 OK 버튼을 클릭합니다.

이제 Jenkins 첫 화면으로 이동해 새 작업을 만들어 보겠습니다.

새 작업을 선택하고 이름을 입력하고 Freestyle Project를 선택합니다.

General에는 이름과 설명을 써줍니다. 그리고 GitHub project의 Project url에 Gitlab url을 넣어주면 Jenkins 프로젝트 메뉴에 Gitlab으로 바로 가는 링크가 걸립니다.

소스 코드 관리에서는 Gitlab 주소를 넣어줍니다.

그리고 Credentials의 Add를 클릭해 등록한 Credential을 선택해 줍니다.

빌드 유발은 빌드 동작에 대한 trigger 입니다. Gitlab에서 push event가 발생하면 Gitlab은 web hook으로 jenkins에게 알려주게 됩니다.

Build when a change is pushed to GitLab. GitLab CI Service URL: http://192.168.0.188:7070/project/Macaron-API를 선택합니다. 그리고 Gitlab에서 Web Hook을  추가해 줘야 합니다.

Gitlab의 Web Hook 추가는 Project > Settings > Integrations에서 합니다.

URL에 jenkins에서 알려준 url이 아닌 http://<jenkins' domain>:<port>/gitlab/build_now를 입력합니다.

Gitlab은 push event가 발생하면 해당 url에 post method로 프로젝트와 push 정보를 jenkins에 보내게 됩니다.

다시 Jenkins로 돌아와서 Build 탭을 선택합니다. (빌드 환경은 넘어 갑니다.)

Add build setp에서 Execute Shell을 선택하고 빌드 명령을 입력합니다.

저는 swift 빌드 명령을 입력했습니다.

참고로 Jenkins에서 swift 빌드를 하려면 swift가 설치되어 있어야 합니다. Ubuntu에 swift설치는 아래 post를 참고해 주세요.

[Ubuntu에 swift 설치하기]


빌드 후 조치에는 Publish build status to GitLab commit (GitLab 8.1 + required)를 선택합니다. 빌드가 성공하면 Gitlab에 commit 메시지를 보내게 됩니다.


여기까지 Gitlab과 Jenkins 설정이었습니다.


'Tools > Jenkins' 카테고리의 다른 글

Ubuntu에 Jenkins 설치  (0) 2017.12.27
Comments