Github Push만 처리 해도 Jenkins를 통해 자동 빌드 처리하는 방법은 Webhook 과 Polling 방식이 있다.
본문에서는 Polling 방식 을 설명한다.
- Polling 이란?
- 본인의 App에서 End-Point에 지속적으로 이벤트 발생 여부를 묻고 이에 대해 응답받는 형태
- Git Repository에 변경사항이 있는지 특정 간격으로 물어보는 것
목차
1. Item 생성
- Multi branch Pipeline 선택
- Pipeline 으로 Item 을 생성하여 polling 설정이 가능하나, git change 를 detect 하지 못하고 schedule 설정대로 polling 하는 단점이 있다.
- Multi branch Pipeline 으로 Item을 생성할경우 사용자가 설정한 schedule 의 시간대로 주기적으로 polling 하면서, github 의 코드가 변경됐을 때 Jenkins job 이 시작된다.
2. Project 설정
2.1. Branch Sources
- Branch Sources
- Branch Sources → Add Source 본문에서는 Git Hub 선택
- Credentials : 앞서 추가한 Github Credential 추가 / Repository HTTPS URL : GitHub URL
- Validate 버튼 클릭시 Credentials ok. Connected to <YOUR GIT URL> 메세지가 나오지않으면 Credential 정보와 Git URL 중 잘못된 정보가 있는것이다.
2.2. Build Configuration
- Build Configuration
- Script Path 즉 Jenkinsfile이 위치하고 있는 파일의 경로와 이름
2.3. Scan Repository Triggers
- Scan Repository Triggers : pipeline 검증 주기
- 최소 1분 ~
3. UI 확인
- Scan Repository Log : 리포지토리 Scan 로그를 볼수 있음
4. Pipline 으로 Item 생성시
Build Triggers
젠킨스는 빌드 스케쥴을 설정할 때 cron syntax를 따른다.
Poll SCM cron 작업 설정
# 매시 5분마다
5 * * * *
# 1분마다
H/1 * * * *
# 매일 오전 8시
0 8 * * *
Jenkins에서 사용되는 H 기호
- H기호는 특정 범위 안에서 프로젝트 이름을 해시값으로 특정 값을 뽑아낸다.
- H기호를 사용하는 이유는 Cron으로 실행되는 프로젝트가 모두 같은 시간에 시작되지 않게 하기 위해서 사용한다.
- 해당 범위 안에서 결정되도록 설정(H(0,30) * * * * * ): 매시 0-30분 사이에 파이프라인 실행(ex. 매시 27분)
- H값이 매번 변경되는건 아니다. 한번 결정되면 프로젝트내에서는 같은 값으로 유지 된다.
- Jenkins에서는 작업은 분산하는 H 기호를 사용하기를 권장한다.
'DevOps, Infra' 카테고리의 다른 글
[Jenkins] 빌드 자동화 - webhook (0) | 2022.12.28 |
---|---|
[Jenkins] Jenkinsfile (0) | 2022.12.28 |
[Jenkins] 플러그인 설치 및 준비 (0) | 2022.12.27 |
Git 브랜치 전략 3가지 (0) | 2022.12.27 |
[skaffold] Skaffold , kustomize with Spring Boot (0) | 2022.12.27 |