Jenkins 프로젝트 설정을 만져보다가 PR을 보냈을 때, 바로 빌드를 시작하는 설정이 있어서 이 설정을 해봤다.
Github Pull Requests
Jenkins 프로젝트 설정을 보다 보면 Trigger 쪽에 Github Pull Requests를 볼 수 있다.
| Github Pull Requests |
|---|
 |
- 이렇게 간단한 설정만 하면 될 줄 알았지만 이건 재앙이었다...
- 이 설정을 하기 위해서 해야되는 설정
-
Github 계정 Personal access tokens 발급 후, Jenkins에 접근 권한 설정
-
접근할 Github 프로젝트의 Webhooks 설정. (먼저해야하는 설정 : Jenkins 외부 장치에서 접속하기)
-
Jenkins 프로젝트 설정.
진짜 더럽게 힘들었다.
Jenkins Credentials 설정
Jenkins에서 Github 저장소에 접근을 하려면, 계정의 접근 권한을 허가해주는 Personal access tokens, PAT를 발급 받아야한다.
- Github로그인 -> Setting -> 왼쪽 가장 아래에 Developer Settings
| 순서 |
|---|
 |
 |
- Personal access tokens -> Tokens(classic) 클릭
| 순서 |
|---|
 |
 |
-
나는 이미 발급 받은 토큰 있지만, 토큰은 코드는 발급 받았을 때 한번만 볼 수 있다.
-
즉, 발급 받고 코드는 다른 데에 복사해서 보관하거나 필요할 때마다 다시 발급 받을 수 밖에 없다.
- Generate new token -> Generate new token(classic) 클릭
| 순서 |
|---|
 |
- 사진과 같이 설정
| 설정 |
|---|
 |
- 이름 : JenkinsBuild
- 기간 : No expration
- 권한 : 저장소만
| 설정 |
|---|
 |
- 생성에 성공하면, 내 사진과 달리 저 위치에 코드가 있을 것이다.
- 해당 코드를 복사한다.
- Jenkins 관리 -> System -> GigHub -> GitHub Servers -> Add GitHub Server 클릭
| 순서 |
|---|
 |
- Credentials 오른쪽 끝에
+ Add -> Jenkins 클릭
- 다음과 같이 설정
| 설정 |
|---|
 |
- Secret에는 PAT 코드를 넣어준다.
- Add 버튼을 누르고, Credentials에 방금 생성한 권한을 넣어준다.
- 그리고 설정 저장.
- Jenkins에서 프로젝트 -> 구성 -> 소스 코드 관리 -> Git -> Credentials이 있다.
하지만 여기서는 아까 만든 권한을 찾을 수 없는데, 이상하게 Secret text로 생성한 권한은 여기서 찾을 수 없었다.
그래서 다시 생성해야 한다.
| 설정 |
|---|
 |
- 종류를 Username with password로 설정하고
- username은 github에 설정된 이름과 같이 설정.
- password에 PAT 코드를 넣어주면 된다.
- 그리고 다시 권한을 넣어주고 저장한다.
Webhooks 설정
- Jenkins 외부 장치에서 접속하기 <- 이거 필수
- Jenkins 관리 -> System -> Jenkins Location -> Jenkins URL를 설정
| 사진 |
|---|
 |
http://[내 IP 주소]:8080로 설정해주면 된다.
- Github -> 내 프로젝트 저장소 Setting -> 왼쪽 옵션에서 Webhooks 클릭
| 사진 |
|---|
 |
- Add Webhooks 클릭
| 사진 |
|---|
 |
- 설정
- 맨위에 Recent Deliveries를 누르고 연결 실패한 기록을 눌러 나오는 Redeliver 버튼을 누른다.
| 사진 |
|---|
 |
 |
- 사실 여기서 계속 실패해서 이 방법으로 연결을 성공했다.
Jenkins 프로젝트 설정
| 프로젝트 설정 |
|---|
 |
- GitHub Pull Requests를 체크하고 다음과 같이 설정한다.
- Trigger Mode는 Hooks with Persisted Data로 설정.
- H/5 * * * * 은 5분마다 체크한다는 표시이다.
- Tigger Events는
Pull Request Openned와 Commit changed를 넣어 주었는데, PR이 열린 이후에 수정된 코드들이 여전히 안전한지 실시간으로 확인하기 위해서 이렇게 설정했다.
- 이후 저장
Test
| Test |
|---|
 |
소감
이거 외로 이것저것 한게 많긴한데, 오늘은 그거 정리하기 힘들어서 여기까지만...
- java 버전 업(17버전이 26년도 3월까지만 지원)
- 빌드하는 에이전트 생성 및 백그라운드 실행.