Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Jenkins가 Gitlab에 연결하기전, Jenkins 플러그인 설치가 필요함.

Gitlab, Gitlab Hook plugin 설치. 


Gitlab에서 Access Token을 생성

Gitlab User Settings > Access Tokens 에서 생성

Name과 Expires at을 입력하고 Scopes를 선택

Create personal access token 버튼을 클릭하면 Access Token이 생성.

Image Added

생성된 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


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

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

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


Gitlab의 특정 project에 push된게 있다면 가저와서 빌드하는 것을 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 빌드 명령을 입력했습니다.