Jenkins, Github PR하면 빌드할 수 있게 설정

이준영·2025년 12월 18일
post-thumbnail

Jenkins 프로젝트 설정을 만져보다가 PR을 보냈을 때, 바로 빌드를 시작하는 설정이 있어서 이 설정을 해봤다.

Github Pull Requests

Jenkins 프로젝트 설정을 보다 보면 Trigger 쪽에 Github Pull Requests를 볼 수 있다.

Github Pull Requests
  • 이렇게 간단한 설정만 하면 될 줄 알았지만 이건 재앙이었다...
  • 이 설정을 하기 위해서 해야되는 설정
  1. Github 계정 Personal access tokens 발급 후, Jenkins에 접근 권한 설정

  2. 접근할 Github 프로젝트의 Webhooks 설정. (먼저해야하는 설정 : Jenkins 외부 장치에서 접속하기)

  3. Jenkins 프로젝트 설정.

진짜 더럽게 힘들었다.

Jenkins Credentials 설정

Jenkins에서 Github 저장소에 접근을 하려면, 계정의 접근 권한을 허가해주는 Personal access tokens, PAT를 발급 받아야한다.

  1. Github로그인 -> Setting -> 왼쪽 가장 아래에 Developer Settings
순서
  1. Personal access tokens -> Tokens(classic) 클릭
순서
  • 나는 이미 발급 받은 토큰 있지만, 토큰은 코드는 발급 받았을 때 한번만 볼 수 있다.

  • 즉, 발급 받고 코드는 다른 데에 복사해서 보관하거나 필요할 때마다 다시 발급 받을 수 밖에 없다.

  1. Generate new token -> Generate new token(classic) 클릭
순서
  1. 사진과 같이 설정
설정
  • 이름 : JenkinsBuild
  • 기간 : No expration
  • 권한 : 저장소만
설정
  • 생성에 성공하면, 내 사진과 달리 저 위치에 코드가 있을 것이다.
  • 해당 코드를 복사한다.
  1. Jenkins 관리 -> System -> GigHub -> GitHub Servers -> Add GitHub Server 클릭
순서
  1. Credentials 오른쪽 끝에 + Add -> Jenkins 클릭
  2. 다음과 같이 설정
설정
  • Secret에는 PAT 코드를 넣어준다.
  • Add 버튼을 누르고, Credentials에 방금 생성한 권한을 넣어준다.
  • 그리고 설정 저장.
  1. Jenkins에서 프로젝트 -> 구성 -> 소스 코드 관리 -> Git -> Credentials이 있다.

하지만 여기서는 아까 만든 권한을 찾을 수 없는데, 이상하게 Secret text로 생성한 권한은 여기서 찾을 수 없었다.

그래서 다시 생성해야 한다.

설정
  • 종류를 Username with password로 설정하고
  • username은 github에 설정된 이름과 같이 설정.
  • password에 PAT 코드를 넣어주면 된다.
  • 그리고 다시 권한을 넣어주고 저장한다.

Webhooks 설정

  1. Jenkins 외부 장치에서 접속하기 <- 이거 필수
  2. Jenkins 관리 -> System -> Jenkins Location -> Jenkins URL를 설정
사진
  • http://[내 IP 주소]:8080로 설정해주면 된다.
  1. Github -> 내 프로젝트 저장소 Setting -> 왼쪽 옵션에서 Webhooks 클릭
사진
  1. Add Webhooks 클릭
사진
  • 밑에 있는건 연결 성공한 Webhooks
  1. 설정
사진
  • 사진과 같이 설정해준다.
  1. 맨위에 Recent Deliveries를 누르고 연결 실패한 기록을 눌러 나오는 Redeliver 버튼을 누른다.
사진
  • 사실 여기서 계속 실패해서 이 방법으로 연결을 성공했다.

Jenkins 프로젝트 설정

프로젝트 설정
  • GitHub Pull Requests를 체크하고 다음과 같이 설정한다.
  • Trigger Mode는 Hooks with Persisted Data로 설정.
  • H/5 * * * * 은 5분마다 체크한다는 표시이다.
  • Tigger Events는 Pull Request OpennedCommit changed를 넣어 주었는데, PR이 열린 이후에 수정된 코드들이 여전히 안전한지 실시간으로 확인하기 위해서 이렇게 설정했다.
  • 이후 저장

Test

Test
  • 성공

소감

이거 외로 이것저것 한게 많긴한데, 오늘은 그거 정리하기 힘들어서 여기까지만...

  1. java 버전 업(17버전이 26년도 3월까지만 지원)
  2. 빌드하는 에이전트 생성 및 백그라운드 실행.
profile
게임 개발자가 되기 위해서 공부하는 중입니다.

0개의 댓글