Jenkins와 github 연동(github token 이용)

작업환경

Jenkins: 2.426.2

jenkins와 github 연동

jenkins에서 빌드를 하려면 git repository를 클론하여 빌드를 실행해야 한다. 따라서 jenkins에서 github에 접근하기 위한 작업을 해주어야 한다.

 

1. github 계정에 접속해 settings에 들어간다.

화면 우측 상단에 아이콘을 누르면 메뉴바에 setting 탭을 확인할 수 있다.

2. Developer settings에 들어간다.

화면을 아래로 좀 스크롤하면 왼쪽 메뉴 바 맨 아래쪽에 Developer settings 탭이 있다. 해당 탭을 클릭한다.

 

3. Tokes 탭에 들어간다.

왼쪽 메뉴 바에서 Personal access tokens를 클릭하면 Tokens(classic)이 보인다. 해당 탭을 클릭한다.

 

4. Generate new token을 눌러 토큰 발급 화면으로 이동한다.

Generate new token을 누르면 비밀번호를 입력해야 한다. 알맞게 비밀번호를 입력하면 token발급 화면으로 이동한다.

 

5. 각 항목에 적절한 값을 입력하고 화면 하단에 Generate token 버튼을 클릭한다.

 

Note, Expiration은 적절히 값을 입력하고 token으로 할 수 있는 작업에 대해 제한하려면 각 checkbox를 적절히 선택한다. 기본적으로 repository에 대한 clone작업을 하기 위해서 repo를 체크해주고 github webhook을 통해 빌드를 트리거 하기 위해서 admin:repo_hook을 체크해준다.

 

6. 발급받은 토큰을 복사해 보관한다.

빨간색으로 가려진 것이 token 값이다. 해당 값은 발급받은 시점에만 확인할 수 있으므로 파일로 보관하든 따로 기록을 해둔다. 

 

7. jenkins dashboard 화면에서 jenkins 관리 메뉴를 클릭한다.

8. Credential 메뉴를 클릭한다.

jenkins plugin을 설치할 때 권장항목으로 설치했다면 해당 plugin이 설치되어 정상적으로 메뉴가 있을 것이다. 안 보인다면 Credential Plugin을 설치하면 된다.

 

9. (global) 을 클릭한다.

초기에는 ID, Name에 아무 값도 안 보일 것이다. 글을 쓰는 시점에는 하나가 이미 존재한다.

10. Add credential 을 클릭한다.

 

11. credential을 생성한다.

- Kind: credentials의 유형을 의미한다. Username and password를 지정해준다.

- Scope: 생성하는 credentials를 사용할 수 있는 범위를 말한다. 범위를 제한하지 않는다면 Global을 지정한다.

- Username: github 계정의 username을 입력한다.

- Password: github에서 발급받은 token 값을 입력한다.

- ID: credentials를 식별할 수 있는 임의의 값을 입력한다.

- Description: credentials를 쉽게 알아볼 수 있도록 설명을 입력한다.

 

12. credential이 정상적으로 발급된다.

 

13. jenkins에서 새로운 item을 생성한다.

 

글에서는 확인용으로 사용할 것이므로 간단히 Freestyle project 로 생성할 것이다.

 

14. 소스 코드 관리 부분에서 git을 연동해준다.

- Repository URL : git repository의 주소를 입력한다.

- Credentials: 위에서 생성한 Credential을 지정한다.

- Branch Specifier: 빌드기준이 될 브랜치를 지정한다.

 

15. Build Steps 부분에서 간단하게 clone 하는 명령어를 작성해주고 저장한다.

16. 생성한 item으로 들어가 지금 빌드 버튼을 클릭한다. 정상적으로 작동이 끝나면 왼쪽 하단에 보이듯 빌드 항목이 초록색으로 보일 것이다.

17. 빌드 항목의 Console output으로 들어가보면 정상적으로 clone이 된 것을 확인할 수 있다.

빨간색 줄 쳐진 곳을 보면 지정한 credential을 이용하여 clone을 진행하는 것을 알 수 있다.

'Devops' 카테고리의 다른 글

서버에 nginx 설치 및 작동확인  (1) 2024.01.08