[AWS] EC2 Jenkins -(2) Github와 연동, 자동 빌드 적용하기

yunSeok·2023년 12월 4일
1

사이드 프로젝트

목록 보기
8/14
post-thumbnail

순서

  1. 깃 토큰 발급하기
  2. 젠킨스 GitHub 연동
  3. 젠킨스 프로젝트 생성
  4. 젠킨스 플러그인 설치
  5. GitHub Webhook생성

1. 깃 토큰 발급하기

https://github.com/settings/profile

Settings -> Developer settings -> Personal access tokens -> Tokens (classic) -> Generate new token

차례로 들어가서 토큰 발급하겠습니다.

note : 사용하실 토큰 이름 작성해주세요.
Expiration : 토큰 유효기간 설정해주세요.
Select scopes : 빨간색 박스 두 개가 젠킨스에 요구하는 scope 입니다. 이 두 가지만 체크하셔도 상관없습니다.

Generate token 클릭!

토큰이 바로 생성될겁니다. 생성된 토큰 복사해주세요!


2. 젠킨스 GitHub 연동

Jenkins 관리 -> System Configuration -> System
밑으로 내려보면 GitHub 설정 칸이 있습니다.

Add GitHub Server 클릭

Credentials 칸에서 + Add 클릭

📌 Name 부분은 작성하지 않아도 자동으로 설정되어집니다.

Kind : Secret text 로 설정
Secret : 복사한 토큰을 붙여넣어주세요.
아래 ID와 Description은 원하시는 거로 작성해주세요.

Credentials를 방금 생성한거로 선택해주고, Test connection 눌렀을때
Credentials verified for user cyseok, rate limit: 4998
메시지가 나오면 연동완료입니다.


3. 젠킨스 프로젝트 생성

새로운 Item 클릭


이름 작성해주시고
Freestyle project 선택해주세요.


설명 작성하고 아래 GitHub project 체크해서 Project url에 본인 프로젝트의 주소를 작성해주세요.


아래 소스 코드 관리에서 Project url작성

📌 여기서 Project url

Repository URL에는 위 처럼 .git으로 끝나는 URL 입력해주세요.

Credentials에서 + Add 클릭!


Username : 깃허브의 아이디
Password : 깃허브의 비밀번호

ID : 젠킨스에서 사용할 아이디 입력
Description : 설명 기입


아래 Branches to buildBranch Specifier 칸에는 빌드할 브런치를 작성해주세요.
저는 main 브런치를 사용했습니다.


빌드 유발GitHub hook trigger for GITScm polling으로 설정했습니다.

구성은 여기까지 설정하겠습니다.

간단하게 차이점 설명드릴게요.

  • 빌드를 원격으로 유발 (예: 스크립트 사용) : Jenkins 서버 외부에서 빌드를 시작할 수 있습니다. 이를 위해 Jenkins는 HTTP API를 제공합니다. 스크립트를 사용하여 API를 호출하면 Jenkins에서 빌드가 시작됩니다.
  • Build after other projects are built : 다른 프로젝트가 빌드된 후 해당 프로젝트를 빌드합니다. 이를 통해 여러 프로젝트를 함께 빌드할 수 있습니다.
  • Build periodically : 일정한 주기로 빌드를 시작합니다. 이를 통해 정기적으로 빌드를 실행할 수 있습니다.
  • GitHub hook trigger for GITScm polling : GitHub에서 제공하는 훅을 사용하여 빌드를 시작합니다. 이를 통해 GitHub에서 커밋이 발생하면 Jenkins에서 빌드가 시작됩니다.
  • Poll SCM : 형상 관리 시스템에서 변경 사항을 감지하여 빌드를 시작합니다. 이를 통해 형상 관리 시스템에서 파일이 변경되면 Jenkins에서 빌드가 시작됩니다.

이 다음에는 또 뭐해야해..??


4. GitHub 플러그인 설치

Jenkins 관리 -> Plugins -> Available plugins 에서
GitHub Integration 를 검색해서 설치해주세요.


5. GitHub Webhook생성

📌 Webhook

  • webhook 기능은 특정 이벤트가 발생할 때마다 외부 웹이나 앱, 지정한 URL로 정보가 포함된 알림을 보내는 기능입니다.

깃허브 프로젝트 Settings -> Webhooks
Add webhook 클릭!

Payload URL : 젠킨스URL/github-webhook
Content type : application/json

아래는 Just the push event.로 설정해, 푸시될 때 webhook이 실행되도록 해주었습니다.

이렇게 설정해준다면 만약 GitHub에 Push될 때, 젠킨스에

자동적으로 빌드가 되는 것을 확인할 수 있습니다!!


📌 Jenkins - Webhook의 프로세스를 살펴보겠습니다!!

  1. GitHub에 Push되면, 정보가 Webhook을 이용해 Jenkins URL/github-webhook/ 으로 보내집니다.
  2. jenkins 에서 webhook을 이용해 보내온 정보를 Github Plugin에서 수신합니다.
  3. Github 플러그인에서 webhook을 통해 보내져온 깃허브 레퍼지토리를 확인합니다.
  4. 젠킨스에 설정된 레퍼지토리와 같다면 빌드를 시작합니다.

0개의 댓글